2016-06-09 87 views
0

如果ownerid不存在于播放器id中,我试图运行此查询来删除公会中的一行。无法更新存储的函数/触发器中的表

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

,但我得到这个错误:因为它已经使用由调用这个存储函数/触发声明 无法更新在存储函数/触发器表“玩家”。

另外我尝试NOT EXISTSLEFT JOIN但我得到了同样的结果。

我能在这种情况下做什么?提前致谢。

+0

您是否尝试在触发器中运行此代码?或者你有公会的触发器?你必须发布公会的触发码,产生错误的代码就在那里。 – Solarflare

+0

我意识到它可以完美的使用SELECT。所以我必须删除所有没有使用ownerid的公会,这不是太多的工作,反正谢谢你试图帮助球员。 – dohdle

回答

0

您的查询也删除了players表,实际上删除了所有内容。由于players表以某种方式受到保护,因此您会收到该错误,您无需触摸它,试试这个;

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

我得到相同的错误 – dohdle

相关问题