我正在使用MySQL 5.6。在某个窗口的应用程序中,我具有以下内容:
qry2 = 'UPDATE `listprojects` SET `autoassign` = %i WHERE `number` = "%s" ' %( autoassign, autoassign2)
system.db.runUpdateQuery(qry2)
其中的数字在表中是唯一的,尽管没有索引。尽管UPDATE语句仅更新单个行,但这仍会引发错误。
我怎样才能使该查询不会被SQL_SAFE_UPDATES捕获?我必须使数字列成为索引还是其他?
答案 0 :(得分:1)
documentation解释了为什么即使有WHERE
子句也会出现此错误:
使用
来修改行--safe-updates
,您只能通过指定用于标识行的键值或LIMIT
子句,或同时使用两者
如果number
列上没有索引,则您未指定键值。
在该列上添加索引,错误应该消失。