我想使用另一个数据库(在同一主机上)中xfade
的值更新samdb.songlist
中的字段xfade
,samdbtmp.songlisttmp
.只要filename
字段中有文本APPLE
。
这是我的尝试...
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';
我想在不取消工作台安全更新的情况下执行此操作,我认为通过添加带有关键字段ID
的 WHERE ,我应该能够做到这一点。但是我得到错误...
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 正确吗?如何避免错误?
是真正的答案,不如说是解决方法。我和下面一起去了...
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;
我很高兴为此查询禁用安全更新,只是不是永久关闭。