比方说,我有2个表 - item_images
和images
。使用内部查询时mysql错误1175
当我运行查询
SELECT image_id FROM item_images WHERE item_id=1
我得到image_id
值5
,6
当我运行
DELETE FROM images WHERE id in (5, 6);
它也可以和删除这些2行。
但是,当我试图链这两个查询在一起,它失败,错误1175
DELETE FROM images WHERE id in (SELECT image_id FROM item_images WHERE item_id=1);
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 Editor and reconnect. 0.000 sec
id字段设置为私有密钥,而不是空。
为什么会发生这种情况,如果如果id在WHERE显然是私钥?
解决此问题的唯一方法是禁用安全模式,还是有其他方法?
谢谢!
假设'id'列('images'表)总是大于零:'... WHERE id> 0 AND id in(SELECT image_id ...'。 – wchiquito
@wchiquito,有趣 - 但我得到'(in)'中的语法错误:意外'当我尝试这样做时:S – Ward