Обновление поля в базе данных A с полем из базы данных B и предупреждение о безопасном обновлении
Я хочу обновить поле xfade
в samdb.songlist
со значениями из xfade
в другой базе данных (на том же хосте), samdbtmp.songlisttmp
, Пока есть текст APPLE
в filename
поле.
Вот моя попытка...
UPDATE samdb.songlist
SET
samdb.songlist.xfade = (SELECT
samdbtmp.songlisttmp.xfade
FROM
samdbtmp.songlisttmp
WHERE
samdbtmp.songlisttmp.ID = samdb.songlist.ID)
WHERE filename LIKE '%201411.mp3';
Я хотел бы сделать это, не снимая безопасные обновления в Workbench, и я подумал, добавив WHERE с ключевым полем ID
Я должен быть в состоянии сделать это. Но я получаю ошибку...
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.
Вопрос... мой MySQL правильный? И как мне избежать ошибки?
1 ответ
На самом деле не столько ответ, сколько обходной путь. Я пошел с ниже...
SET SQL_SAFE_UPDATES=0;
UPDATE samdb.songlist
SET
samdb.songlist.xfade = (SELECT
samdbtmp.songlisttmp.xfade
FROM
samdbtmp.songlisttmp
WHERE
samdbtmp.songlisttmp.ID = samdb.songlist.ID)
WHERE filename LIKE '%201411.mp3';
SET SQL_SAFE_UPDATES=1;
Я был рад отключить безопасные обновления для этого запроса, но не навсегда.