Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Es ist nicht erlaubt, eine Ergebnismenge von einem Trigger zurückzugeben

Die Ausnahme ist meiner Meinung nach klar genug.

Sie können zusätzliche Operationen innerhalb eines Triggers ausführen (einen SP aufrufen, Einfüge-/Aktualisierungs-/Löschoperationen durchführen, ...), aber all diese dürfen kein Ergebnis zurückgeben.

Das bedeutet, dass ein SP mit einer einfachen Select-Anweisung darin nicht erlaubt ist. Wenn Sie stattdessen diese select-Anweisung innerhalb einer Schleife verwenden würden, um beispielsweise Aktualisierungen oder ähnliches durchzuführen, wäre dies zulässig, da Sie nichts zurückgeben würden.

Der Grund dafür ist, dass eine Insert/Update/Delete-Anweisung nichts zurückgeben kann, sie kann nicht die Ergebnismenge Ihrer gespeicherten Prozedur zurückgeben und daher sollten Sie nicht versuchen, eine innerhalb des Triggers zurückzugeben.