MySQL ERROR 1175 安全模式UPDATE DELETE操作失败怎么办
发布时间:2022-01-12 13:18:33 所属栏目:MySql教程 来源:互联网
导读:这期内容当中小编将会给大家带来有关MySQL ERROR 1175 安全模式UPDATE/DELETE操作失败怎么办,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 在做某些update 或者 delete操作时,会报错: ERROR 1175 (HY000): You are
这期内容当中小编将会给大家带来有关MySQL ERROR 1175 安全模式UPDATE/DELETE操作失败怎么办,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 在做某些update 或者 delete操作时,会报错: ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column 大致意思是,使用了安全模式下,尝试使用update(delete)操作表时,没有在where条件里写有key的列。 比如,某张表有两个字段,其中col_1为主键,以下操作都是被禁止的: DELETE FROM table_name; DELETE FROM table_name LIMIT 5; DELETE FROM table_Name WHERE col_2=0; UPDATE table_name SET col_1=0; UPDATE table_name SET col_1=0 WHERE col_2=0; 【解决方案】: 要么禁用这个安全模式,要么按要求写sql即可解决这个问题: 〇 禁用对应安全模式: 实际上是开启了sql_safe_updates这个参数导致的,可以检查一下该参数: mysql> SELECT @@sql_safe_updates; +--------------------+ | @@sql_safe_updates | +--------------------+ | 1 | +--------------------+ 1 row in set (0.00 sec) 如果临时禁用,可以直接动态修改会话级别的模式: mysql> SET sql_safe_updates=0; Query OK, 0 rows affected (0.00 sec) 如果永久修改,则需要在my.cnf中做修改: 将[mysql]下的safe-updates参数注释或者删掉,重新通过client登录mysql-server即可。 〇 修改sql: 在sql_safe_updates开启的情况下,如果需要使用update/delete操作一张表,必须满足一下条件之一: 在DELETE操作里: ① 需要在where中写明有key的列的条件,比如此处可以是WHERE col_1=0;(col_1为主键)。 或者 ② 需要在where中写名其他非key列的条件,并且加上limit限制 在UPDATE操作里: ① 需要指定limit限制 或者 ② 需要在where中写明有key的列的条件 或者 ③ 需要在where中写名其他非key列的条件,并且加上limit限制 上述就是小编为大家分享的MySQL ERROR 1175 安全模式UPDATE/DELETE操作失败怎么办了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |