Mysql执行更新或删除操作时不以主键作为where条件报错
来源:互联网 发布:淘宝正义哥之家店铺 编辑:程序博客网 时间:2024/05/18 02:55
在执行update prd_property set isdel = 1 where prdid = 211时,报如下错误:
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有个叫SQL_SAFE_UPDATES的变量,为了数据库更新操作的安全性,此值默认为1。
- 当SQL_SAFE_UPDATES = 1时,
- update语句必须满足如下条件之一才能执行成功
- 1)使用where子句,并且where子句中列必须为prefix索引列
- 2)使用limit
- 3)同时使用where子句和limit(此时where子句中列可以不是索引列)
- delete语句必须满足如下条件之一才能执行成功
- 1)使用where子句,并且where子句中列必须为prefix索引列
- 2)同时使用where子句和limit(此时where子句中列可以不是索引列)
- 当SQL_SAFE_UPDATES =0时,update和delete操作将会顺利执行。
所以可以先设置SQL_SAFE_UPDATES的值为0,然后再执行更新,例如:set sql_safe_updates=0;update prd_property set isdel = 1 where prdid = 211;执行成功为了数据库安全,还是将set sql_safe_updates设回了1,多取一次,用主键更新。
部分内容摘自:http://blog.csdn.net/shaochenshuo/article/details/51351452http://blog.csdn.net/dong976209075/article/details/8791904
阅读全文
0 0
- Mysql执行更新或删除操作时不以主键作为where条件报错
- MySQL Workbench 执行更新或删除操作时出现 1175错误 安全更新限制
- mysql 删除和修改的时候,where 条件中使用原table报错的问题
- 添加以联合主键之一作为外键的约束时,出错:此列列表的唯一关键字或主键不匹配
- MySQL中where条件的执行分析
- iBatis动态条件查询 where的if条件不执行
- 封装MySQL操作时Where条件语句的组织
- 关于sql条件语句where id in (@参数)执行报错问题(转换成数据类型 int 时失败)(
- JPA 执行更新操作报错
- mysql中支持emoji表情作为where条件
- 关于如何避免操作(update、delete)mysql数据库时忘记添加where而导致全表修改或删除情况
- 关于如何避免操作(update、delete)mysql数据库时忘记添加where而导致全表修改或删除情况
- mysql 同一个字段作为条件更新
- hibernate执行更新操作的时候,没有主键会报错
- SQLServer inner join 不先执行where条件的优化
- 用SQLite执行join操作时,筛选条件应当写在WHERE后面
- MySQL存储过程where条件执行失败的问题
- where条件的顺序是否影响mysql的执行效率
- iOS NSString的讲解(一)
- mybatis源码学习之org.apache.ibatis.datasource.jndi包
- C#委托
- 《深入理解java虚拟机》读书笔记——垃圾收集器
- CRC校验
- Mysql执行更新或删除操作时不以主键作为where条件报错
- JDBC处理大数据案例--处理文本
- POJ1830开关问题-高斯消元
- 欢迎使用CSDN-markdown编辑器
- keepalived实现Tomcat服务双机热备
- UIScrollView滚动视图的基本用法
- PHP动态编译出现错误的解决方法
- POJ1609 UVALive2815 UVA1196 ZOJ1787 Tiling Up Blocks【二维最长上升子序列+DP】
- LINUX下的crond和crontab的调研