我想更新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是否正确?我该如何避免错误?
答案 0 :(得分:0)
并不像解决方法那样真正的答案。我跟下面去了......
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;
我很高兴为此查询禁用安全更新,而不是永久关闭。