Почему в моем запросе возникает ошибка SQL_SAFE_UPDATE? - PullRequest
0 голосов
/ 19 июня 2019

Я использую MySQL 5.6.В моем приложении в определенном окне у меня есть следующее:

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

, где число уникально в таблице, хотя и не проиндексировано.Это выдает ошибку, несмотря на то, что оператор UPDATE обновляет только одну строку.

Как мне сделать так, чтобы этот запрос не попадал в SQL_SAFE_UPDATES?Нужно ли делать числовой столбец индексом или чем-то еще?

1 Ответ

1 голос
/ 19 июня 2019

Документация объясняет, почему вы можете получить эту ошибку, даже если у вас есть предложение WHERE:

С --safe-updates вы можете изменять строки только на указав значения ключей , которые их идентифицируют, или предложение LIMIT, или оба

Если у вас нет индекса для столбца number, значит, вы неуказание значения ключа.

Добавьте индекс к столбцу, и ошибка должна исчезнуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...