ошибка появляется при выполнении запроса SQL - PullRequest
3 голосов
/ 13 июня 2011

У меня есть запрос SQL, который я не могу выполнить, появляется эта ошибка:

Чтобы отключить безопасный режим, переключите опцию в Предпочтения -> Редактор SQL -> Редактор запросов и переподключите.Вы используете безопасный режим обновления и пытались обновить таблицу без WHERE, в которой используется столбец KEY

Мой запрос:

update customfieldvalue
set stringvalue="****"
where customfieldvalue.customfield IN 
(select customfield.id 
from customfield 
where customfield.cfname="Resoltion" 
and customfieldvalue.issue=12345);

как я могу решить эту проблему, потому чтов моей производственной среде я не могу сделать эту манипуляцию?PS: я использую mysql

Ответы [ 4 ]

2 голосов
/ 09 января 2012

Чтобы отключить его только для текущего сеанса:

SET SQL_SAFE_UPDATES=0;
0 голосов
/ 26 июля 2013
SET SQL_SAFE_UPDATES=0;
update customfieldvalue
set stringvalue="****"
where customfieldvalue.customfield IN 
(select customfield.id 
from customfield 
where customfield.cfname="Resoltion" 
and customfieldvalue.issue=12345);
0 голосов
/ 13 июня 2011

Если вы не можете отключить безопасное обновление в производственной среде, вам нужно переработать запрос, чтобы включить хотя бы один ключевой столбец в customfieldvalue.Без этого вы будете выполнять сканирование таблицы;используя ключевой столбец № 1, вы можете получить логический эквивалент (WHERE customfieldvalue.keycol1 IS NOT NULL), но он будет удовлетворять ограничениям безопасного обновления.

0 голосов
/ 13 июня 2011

Чтобы решить эту проблему:

Чтобы отключить безопасный режим: Переключите параметр в «Предпочтения» -> «Редактор SQL» -> «Редактор запросов» и повторите подключение.

Причина:

Вы используете безопасный режим обновления и пытались обновить таблицу без WHERE, в которой используется столбец KEY

(Вы прочитали сообщение? Это все объясняет)

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