2016-06-09 83 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

相關問題