mysql update safe model 一些问题

                                                                                                                                                                     转载自:

水牛叔叔                            

  • 发表于 5年前

  • 阅读 2243


在做数据库实验的时候对mysql表进行UPDATE操作时,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

原来mysql有个叫SQL_SAFE_UPDATES的变量。查了好久,全部中文结果都是copy来copy去的,而且也只是简单给出解决方式。后来找到老外网,上面这么说:MySQL will refuse to run the UPDATE or DELETE query if executed without the WHERE clause or LIMIT clause. MySQL will also refuse the query which have WHERE clause but there is no condition with the KEY column(自己翻译吧)。但是还是不知道这个update safe model是干嘛用的,只能简单猜测:为了数据的安全。

SQL_SAFE_UPDATES有两个取值:0和1。SQL_SAFE_UPDATES = 1时,不带where和limit条件的update和delete操作语句是无法执行的,即使是有where和limit条件但不带key column的update和delete也不能执行。SQL_SAFE_UPDATES = 0时,update和delete操作将会顺利执行。那么很显然,此变量的默认值是1。如图改完后update操作顺利完成:set SQL_SAFE_UPDATES = 0