Dies ist nicht wie beschrieben mit dynamischem SQL / Prepared Statement möglich. Es würde Error Code: 1336. Dynamic SQL is not allowed in stored function or trigger
beim Versuch, sogar CREATE TRIGGER
.
Der Automatisierung am nächsten kommt man mit CREATE EVENT
. Ereignisse sind geplante gespeicherte Programme, die nach dem Zeitplan / Intervall Ihrer Wahl ausgeführt werden. Die Intervalle sind:
Sie könnten sozusagen ein "Flag" auf eine Zeile setzen, wie z. B. die Tabelle, die Sie oben darstellen und die den After Insert-Trigger hat. Das Ereignis könnte dann die Prepared Statement
Siehe meine Antwort hier auf Event Management .
Ich muss sagen, dass Sie fast Immer vorschlagen, selbst wenn Sie in einem Event laufen das Zeichen für ein schlechtes Schemadesign, das einer Peer-Review nicht standhalten würde.
Ein Grund, warum das dynamische SQL und ein vorbereitetes Stmt nicht zulässig sind, liegt darin, dass der Trigger schnell sein muss und sogar DDL in die Zeichenfolge eingeschmuggelt und ausgeführt werden könnte. Und DDL-Stmts wie ALTER TABLE
sind in Triggern nicht erlaubt (es könnte Stunden dauern, bis sie buchstäblich ausgeführt werden).
Ihr Schema könnte genauso gut eine Tabelle haben, die mit einer Spalte ven_code
geteilt wird die Unterscheidungsspalte ist. Stattdessen haben Sie sich entschieden, neue Tabellen für jeden ven_code
zu erstellen . Das ist normalerweise eine schlechte Wahl für Design und Leistung.
Wenn Sie Hilfe beim Schemadesign benötigen, unterhalte ich mich gerne mit Ihnen in einem Chatroom darüber.