使用数据库B中的字段更新数据库A中的字段并避免安全更新警告

时间:2014-11-14 01:16:27

标签: mysql workbench

我想更新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 个答案:

答案 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;

我很高兴为此查询禁用安全更新,而不是永久关闭。