zoukankan      html  css  js  c++  java
  • MySQL删除/更新数据时报1175错误

    今天删除MySQL数据库中的一条记录的时候,一直不能删除,提示错误信息如下:

    1. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that   
    1. uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor -> Query Editor and reconnect.  

    后来通过搜索资料,发现mysql有个叫SQL_SAFE_UPDATES的变量,为了数据库更新操作的安全性,此值默认为1,所以才会出现更新失败的情况。

    下面是SQL_SAFE_UPDATES变量为0和1时的取值说明:


    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。

    所以,出现1175错误的时候,可以先设置SQL_SAFE_UPDATES的值为0,然后再执行更新,例如:

    SQL_SAFE_UPDATES = 0;

    delete from testTable where name='张三';

    3. 总结  

    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子句中列可以不是索引列)

     

  • 相关阅读:
    HDU 3401 Trade
    POJ 1151 Atlantis
    HDU 3415 Max Sum of MaxKsubsequence
    HDU 4234 Moving Points
    HDU 4258 Covered Walkway
    HDU 4391 Paint The Wall
    HDU 1199 Color the Ball
    HDU 4374 One hundred layer
    HDU 3507 Print Article
    GCC特性之__init修饰解析 kasalyn的专栏 博客频道 CSDN.NET
  • 原文地址:https://www.cnblogs.com/lcngu/p/6052412.html
Copyright © 2011-2022 走看看