2016-06-09 5 views
0

Ich habe versucht, diese Abfrage auszuführen, um eine Zeile in Gilden zu löschen, wenn ownerid in der Spieler-ID nicht existiert.Tabelle kann nicht in gespeicherter Funktion aktualisiert werden/trigger

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

Aber ich bekomme diese Fehlermeldung: Tabelle kann nicht ‚Spieler‘ in gespeicherte Funktion/Trigger aktualisiert werden, da es bereits von der Anweisung verwendet wird, die diese gespeicherte Funktion/Trigger aufgerufen.

Auch ich versuchte mit NOT EXISTS UND LEFT JOIN, aber ich habe das gleiche Ergebnis.

Was kann ich in diesem Fall tun? Danke im Voraus.

+0

Versuchen Sie, diesen Code in einem Trigger auszuführen? Oder hast du einen Auslöser für Gilden? Sie müssen den Triggercode für Gilden veröffentlichen, der Code, der diesen Fehler erzeugt, ist da. – Solarflare

+0

Ich erkannte, dass es mit SELECT perfekt funktioniert. Also muss ich alle Gilden ohne Besitzer manuell löschen, was nicht zu viel Arbeit ist, trotzdem danke, dass ihr versucht Jungs zu helfen. – dohdle

Antwort

0

Ihre Abfrage löscht auch players Tabelle, tatsächlich löscht alles. Seit players Tabelle ist irgendwie geschützt, Sie erhalten diesen Fehler, müssen Sie nicht berühren, versuchen Sie dies;

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

Ich bekomme den gleichen Fehler – dohdle

Verwandte Themen