mysql工作台多表更新问题

在mysql workbench上更新多张表,按照要求取消了SQL_SAFE_UPDATES,也重启了软件,但还是报错


    update invoices 
    set  payment_total=invoice_total*0.5,   
    payment_date=due_date    
    where client_id=    
    (select client_id              
    from clients             
    where name= 'Myworks'        )    

报错结果

0 row(s) affected, 1 warning(s): 1265 Data truncated for column 'payment_total' at row 2 Rows matched: 1  Changed: 0  Warnings: 1


应该是 payment_total 列的数据被截断了。可能是因为目标列的数据类型不足以容纳计算结果所导致的。改下数据类型试试 , 如有帮助给个采纳谢谢

  • 这篇博客: MySql中安全模式sql_safe_updates中的 1.什么是安全模式 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在mysql中,如果在update和delete没有加上where条件,数据将会全部修改。不只是初识mysql的开发者会遇到这个问题,工作有一定经验的工程师难免也会忘记写入where条件。为了避免失误造成的数据全部修改和删除,可开启mysql的安全模式。