Dit is niet mogelijk zoals beschreven bij dynamische sql / Prepared Statement. Het zou Error Code: 1336. Dynamic SQL is not allowed in stored function or trigger
bij de poging om zelfs CREATE TRIGGER
.
Het dichtst bij automatisering komt ongeveer het gebruik van CREATE EVENT
. Gebeurtenissen zijn geplande opgeslagen programma's die volgens het schema / interval van uw keuze worden uitgevoerd. De intervallen zijn:
Je zou als het ware een "vlag" op een rij kunnen zetten, zoals de tabel die je hierboven weergeeft en die de trigger After Insert heeft. De gebeurtenis kan dan de Prepared Statement
Zie mijn antwoord hier op Evenementenbeheer .
Ik moet zeggen dat zelfs als je in een evenement wordt gehouden, wat je voorstelt bijna Altijd is het teken van een slecht schemaontwerp dat niet goed stand zou houden bij peer review.
Een reden waarom de dynamische sql en een Prepared Stmt niet zijn toegestaan, is omdat de trigger snel moet zijn en zelfs DDL in de string kan worden geslopen en kan worden uitgevoerd. En DDL stmts zoals ALTER TABLE
zijn niet toegestaan in triggers (het kan letterlijk uren duren voordat ze worden uitgevoerd).
Je schema kan net zo goed één tabel hebben die wordt gedeeld met een kolom ven_code
de differentiatorkolom zijn. In plaats daarvan heb je ervoor gekozen om nieuwe tabellen te maken voor elke ven_code
. Dat is meestal een slechte keuze voor ontwerp en prestaties.
Als je hulp nodig hebt bij het ontwerpen van een schema, praat ik er graag met je over in een chatroom.