Я пытаюсь обновить столбец, visited
чтобы дать ему значение 1. Я использую рабочую среду MySQL, и я пишу оператор в редакторе SQL из рабочей среды. Я пишу следующую команду:
UPDATE tablename SET columnname=1;
Это дает мне следующую ошибку:
Вы используете безопасный режим обновления и пытались обновить таблицу без WHERE, в которой используется столбец KEY. Чтобы отключить безопасный режим, переключите параметр ....
Я следовал инструкциям, и мы отключили safe update
опцию из Edit
меню , а затем Preferences
затем SQL Editor
. Появляется та же ошибка, и я не могу обновить это значение. Пожалуйста, скажите мне, что не так?
mysql
sql-update
mysql-workbench
Жюри а
источник
источник
Ответы:
Похоже, в вашем сеансе MySql установлена опция безопасных обновлений . Это означает, что вы не можете обновить или удалить записи, не указав ключ (например
primary key
) в предложении where.Пытаться:
Или вы можете изменить свой запрос, чтобы следовать правилу (используйте
primary key
вwhere clause
).источник
SET SQL_SAFE_UPDATES = 1
когда закончите, так как это полезная функция безопасности.Выполните следующие шаги перед выполнением команды UPDATE: в MySQL Workbench
Edit
->Preferences
"SQL Editor"
вкладку иuncheck
«Безопасные обновления»check box
Query
->Reconnect to Server
// выйти и затем войтиps, нет необходимости перезапускать демон MySQL!
источник
"Sql Editor"
вместо,"Sql Queries"
а затем внизу есть флажок для"Safe Updates"
источник
Нет необходимости устанавливать SQL_SAFE_UPDATES в 0 , я бы очень не рекомендовал делать это таким образом. SAFE_UPDATES по умолчанию включен для ПРИЧИНЫ. Вы можете управлять автомобилем без ремней безопасности и прочего, если вы знаете, что я имею в виду;) Просто добавьте в предложение WHERE значение KEY, которое соответствует всему, как первичный ключ, по сравнению с 0, поэтому вместо записи:
Теперь вы можете быть уверены, что каждая запись (ВСЕГДА) обновляется, как вы ожидаете.
источник
WHERE id > 0
как трюк в этом направлении.Все, что нужно, это: Запустить новый запрос и выполнить:
Затем: Запустите запрос, который вы пытались выполнить, который ранее не работал.
источник
SET SQL_SAFE_UPDATES = 0;
ваш код SQL здесь
SET SQL_SAFE_UPDATES = 1;
источник
Код ошибки: 1175. Вы используете безопасный режим обновления и пытаетесь обновить таблицу без WHERE, в которой используется столбец KEY. Чтобы отключить безопасный режим, выберите параметр в «Предпочтения» -> «Редактор SQL» и повторно подключитесь.
Выключите «Безопасный режим обновления» временно
Выключите «Безопасный режим обновления» навсегда
Mysql Workbench 8.0:
Старая версия может:
источник
источник
ИЛИ
Перейти к
Edit --> Preferences
Нажмите
SQL Queries
вкладку и снимитеSafe Updates
флажокQuery --> Reconnect to Server
Теперь выполните ваш sql запрос
источник
Если вы находитесь в безопасном режиме, вам нужно указать идентификатор в предложении where. Так что-то вроде этого должно работать!
источник
В WorkBench я решил эту проблему, отключив безопасный режим обновления:
-Edit -> Настройки -> Sql Editor, затем снимите флажок Безопасное обновление.
источник
Я нашел ответ. Проблема заключалась в том, что я должен предшествовать имени таблицы с именем схемы. т.е. команда должна быть:
Спасибо всем.
источник
qms-active-db
.gh_table set bookmark = '1660_207100000001000'В версии MySQL Workbech 6.2 не выходите из предпочтения
В этом случае возможно использование:SQLQueries
параметров .SET SQL_SAFE_UPDATES=0;
источник
Самое простое решение - определить предел строки и выполнить. Это сделано в целях безопасности.
источник
Поскольку на вопрос был дан ответ, и он не имел ничего общего с безопасными обновлениями, это может быть неправильное место; Я выложу просто чтобы добавить информацию.
Я пытался быть хорошим гражданином и изменил запрос, чтобы использовать временную таблицу идентификаторов, которая будет обновлена:
Провал. Изменено обновление для:
Это сработало. Хорошо, если я всегда добавляю где ключ <> 0, чтобы обойти безопасную проверку обновлений, или даже устанавливаю SQL_SAFE_UPDATE = 0, то я потерял «проверку» в моем запросе. Я мог бы просто отключить опцию навсегда. Я полагаю, это приводит к удалению и обновлению двухэтапного процесса вместо одного ... но если вы наберете достаточно быстро и перестанете думать о том, что ключ особенный, а не просто неприятность ...
источник
Правда, это бессмысленно для большинства примеров. Но, наконец, я пришел к следующему утверждению, и оно отлично работает:
источник
Это для Mac, но должно быть одинаковым для других ОС, за исключением расположения настроек.
Ошибка, которую мы получаем при попытке небезопасной
DELETE
операцииВ новом окне снимите флажок
Safe updates
Затем закройте и снова откройте соединение. Нет необходимости перезапускать сервис.
Теперь мы собираемся попробовать еще
DELETE
раз с успешными результатами.Так что же это за безопасные обновления? Это не злая вещь. Это то, что MySql говорит об этом.
Используя
--safe-updates
опциюМожно безопасно включить эту опцию, когда вы работаете с производственной базой данных. В противном случае вы должны быть очень осторожны, чтобы случайно не удалить важные данные.
источник