在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中,如果在update和delete没有加上where条件,数据将会全部修改。不只是初识mysql的开发者会遇到这个问题,工作有一定经验的工程师难免也会忘记写入where条件。为了避免失误造成的数据全部修改和删除,可开启mysql的安全模式。