Mysql 为什么我的查询中存在SQL\u安全更新错误?

Mysql 为什么我的查询中存在SQL\u安全更新错误?,mysql,sql,Mysql,Sql,我使用的是MySQL 5.6。在某个窗口上的应用程序中,我有以下内容: qry2 = 'UPDATE `listprojects` SET `autoassign` = %i WHERE `number` = "%s" ' %( autoassign, autoassign2) system.db.runUpdateQuery(qry2) 其中数字在表中是唯一的,但没有索引。尽管UPDATE语句只更新一行,但这会引发错误 如何使此查询不被SQL\u安全更新捕获?是否必须将数字

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

qry2 =      'UPDATE `listprojects` SET   `autoassign` = %i WHERE `number` = "%s" '  %(  autoassign, autoassign2)
system.db.runUpdateQuery(qry2)
其中数字在表中是唯一的,但没有索引。尽管UPDATE语句只更新一行,但这会引发错误

如何使此查询不被SQL\u安全更新捕获?是否必须将数字列设为索引或其他内容?

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

使用-safe更新,您只能通过指定标识行的键值或LIMIT子句或两者来修改行

如果数字列上没有索引,则没有指定键值


在列上添加索引,错误就会消失。

好的,谢谢,我不确定索引是否与键值相同。很高兴知道。是的,MySQL交替使用索引和键这两个术语。