如果ownerid在玩家ID中不存在,我尝试运行此查询以删除行会行。

DELETE FROM guilds WHERE ownerid NOT IN (SELECT id FROM players);


但是我得到这个错误:
无法更新存储函数/触发器中的表“玩家”,因为调用该存储函数/触发器的语句已使用该表。

我也尝试了NOT EXISTSLEFT JOIN但我得到了相同的结果。

在这种情况下我该怎么办?提前致谢。

最佳答案

您的查询还删除了players表,实际上删除了所有内容。由于players表受到某种方式的保护,因此您会收到该错误,因此无需触摸它,请尝试执行此操作。

DELETE FROM guilds WHERE ownerid != ALL(SELECT id FROM players);

10-06 15:15
查看更多