如果玩家ID中不存在ownerid,我尝试运行此查询以删除公会中的行。
DELETE FROM guilds WHERE ownerid NOT IN (SELECT id FROM players);
但我收到此错误: 无法更新存储函数/触发器中的表'player',因为它已被调用此存储函数/触发器的语句使用。
我也尝试使用NOT EXISTS
和LEFT JOIN
,但我的结果相同。
在这种情况下我该怎么办?提前谢谢。
答案 0 :(得分:0)
您的查询还会删除players
表,实际上会删除所有内容。由于players
表以某种方式受到保护,因此您会收到该错误,您无需触摸它,请尝试此操作;
DELETE FROM guilds WHERE ownerid != ALL(SELECT id FROM players);