Hallo!
ich bin neu registriert hier, obwohl ich mir schon länger viel gute tips aus dem forum heraussuche
was trigger angeht bin ich noch recht unbedarft und hab dazu eine vermutlich grundlegende frage, und zwar hab ich in meinen tabellen (in fast allen) ein feld namens "createuser" indem der user, der das insert ausführt eingetragen wird. sieht so aus:
[highlight=sql]
create trigger ins_tbl_xyz
before INSERT on tbl_xyz
for each row set new.createuser=session_user();
[/highlight]
ich kann jetzt diesen trigger für jede tabelle anlegen und jeweils das "tbl_xyz" in den entsprechenden tabellennamen ändern, mit dem ergebnis ich habe 25 trigger, die sich nur durch den tabellennamen unterscheiden. sinnvoller wäre es für mich einen datenbankweiten trigger anzulegen, der mir den "new.createuser" und auf die tabelle anwendet auf die das INSERT durchgeführt wird. also z.b. so
[highlight=sql]
create trigger ins_createuser
before INSERT on "ANY_TABLE"
for each row set new.createuser=session_user();
[/highlight]
bzw.
[highlight=sql]
create trigger ins_createuser
before INSERT on tbl_xyz, tbl_abc, tbl_efg,....
for each row set new.createuser=session_user();
[/highlight]
ist sowas möglich? was müsste anstelle des "ANY_TABLE" stehen, bzw. kann ich mehrere tabellen nach dem "INSERT on" eintragen?
oder gibt es sowieso eine besser möglichkeit das von mir gewünschte ergebnis zu erzielen?
ich danke euch für die unterstützung!! lg
phil
ich bin neu registriert hier, obwohl ich mir schon länger viel gute tips aus dem forum heraussuche
was trigger angeht bin ich noch recht unbedarft und hab dazu eine vermutlich grundlegende frage, und zwar hab ich in meinen tabellen (in fast allen) ein feld namens "createuser" indem der user, der das insert ausführt eingetragen wird. sieht so aus:
[highlight=sql]
create trigger ins_tbl_xyz
before INSERT on tbl_xyz
for each row set new.createuser=session_user();
[/highlight]
ich kann jetzt diesen trigger für jede tabelle anlegen und jeweils das "tbl_xyz" in den entsprechenden tabellennamen ändern, mit dem ergebnis ich habe 25 trigger, die sich nur durch den tabellennamen unterscheiden. sinnvoller wäre es für mich einen datenbankweiten trigger anzulegen, der mir den "new.createuser" und auf die tabelle anwendet auf die das INSERT durchgeführt wird. also z.b. so
[highlight=sql]
create trigger ins_createuser
before INSERT on "ANY_TABLE"
for each row set new.createuser=session_user();
[/highlight]
bzw.
[highlight=sql]
create trigger ins_createuser
before INSERT on tbl_xyz, tbl_abc, tbl_efg,....
for each row set new.createuser=session_user();
[/highlight]
ist sowas möglich? was müsste anstelle des "ANY_TABLE" stehen, bzw. kann ich mehrere tabellen nach dem "INSERT on" eintragen?
oder gibt es sowieso eine besser möglichkeit das von mir gewünschte ergebnis zu erzielen?
ich danke euch für die unterstützung!! lg
phil
Comment