启动MySQL的时候加上参数 -U
-U, --safe-updates Only allow UPDATE and DELETE that uses keys.
他的作用是防止执行delete的时候没带有条件语句,如果没加上where则语句不执行。
delete from Course where Cid not like "C%"
在执行这条命令时,mysql报错:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences ->SQL Editor and reconnect.
这是因为在mysql在safe-updates模式中,如果where后跟的条件不是主键id就会报这种错误。出现1175错误时,只要更改一下mysql的安全模式就行,以下两种方式都行:
mysql> set sql_safe_updates=0
mysql>set sql_safe_updates=off
SQL_SAFE_UPDATES有两个取值0和1, 或ON和OFF,默认值是1:
SQL_SAFE_UPDATES = 1/ON时,不带where和limit条件的update和delete *** 作语句是无法执行的,即使是有where和limit条件但不带主键id的update和delete也不能执行。
SQL_SAFE_UPDATES =0/OFF时,update和delete *** 作将会顺利执行。
所以,出现1175错误的时候,可以先设置SQL_SAFE_UPDATES的值为0/OFF,然后再执行更新即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)