如果玩家 ID 中不存在 OwnerID,我尝试运行此查询来删除公会中的一行。
DELETE FROM guilds WHERE ownerid NOT IN (SELECT id FROM players);
但我收到此错误: 无法更新存储函数/触发器中的表“玩家”,因为它已被调用此存储函数/触发器的语句使用。
我还尝试了 NOT EXISTS
AND LEFT JOIN
但我得到了相同的结果。
这种情况我能做什么?提前致谢。
最佳答案
您的查询还删除了players
表,实际上删除了所有内容。由于 players
表受到某种保护,因此您会收到该错误,您不需要触摸它,试试这个;
DELETE FROM guilds WHERE ownerid != ALL(SELECT id FROM players);
关于mysql - 无法更新存储函数/触发器中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734623/