为什么我的查询出现SQL_SAFE_UPDATE错误?

时间:2019-06-19 19:33:01

标签: mysql sql

我正在使用MySQL 5.6。在某个窗口的应用程序中,我具有以下内容:

qry2 =      'UPDATE `listprojects` SET   `autoassign` = %i WHERE `number` = "%s" '  %(  autoassign, autoassign2)
system.db.runUpdateQuery(qry2)

其中的数字在表中是唯一的,尽管没有索引。尽管UPDATE语句仅更新单个行,但这仍会引发错误。

我怎样才能使该查询不会被SQL_SAFE_UPDATES捕获?我必须使数字列成为索引还是其他?

1 个答案:

答案 0 :(得分:1)

documentation解释了为什么即使有WHERE子句也会出现此错误:

  

使用--safe-updates,您只能通过指定用于标识行的键值LIMIT子句,或同时使用两者

来修改行

如果number列上没有索引,则您未指定键值。

在该列上添加索引,错误应该消失。