Umgang mit Triggern - To Trigger or not to Trigger
Ein interessanter Artikel von Jürgen Sieben im RedStack-Magazin 05-2022 S.24ff
Fazit:
- Vermeidung von Triggern durch SQL
- Identity-Column
GENERATED [ ALWAYS | BY DEFAULT [ ON NULL ] ] AS IDENTITY [ ( identity_options ) ]
Für Dimensionen gern genommen:
GENERATED BY DEFAULT ON NULL AS IDENTITY
erzeugt eindeutige ID, erlaubt aber feste Singleton (-1 für nicht definiert) vorzugeben.
oder
- default Klausel
CREATE TABLE tst (
--> Es können Sequence-Werte genutzt werden.     d_id NUMBER DEFAULT detail_seq.NEXTVAL,
     m_id NUMBER DEFAULT master_seq.CURRVAL,
--> Es können Contexte genutzt werden.     ax_usr varchar2(32 char) DEFAULT SYS_CONTEXT ('APEX$SESSION', 'APP_USER'),
     db_usr varchar2(32 char) DEFAULT SYS_CONTEXT ('USERENV', 'SESSION_USER')
   ); - Compound Trigger
create or replace trigger trg_test_table_comp
for delete or insert or update on test_table
compound trigger
before statement -- STUB
is
begin
  null;
end before statement;
before each row
is
begin
  :new.object_name := initcap(:new.object_name);
  :new.change_user := user;
end before each row;
after each row -- STUB
is
begin
  null;
end after each row;
after statement -- STUB
is
begin
  null;
end after statement;
end;
/
Kommentare
Kommentar veröffentlichen