データベース・トリガーを作成する。
CREATE [ OR REPLACE ] TRIGGER [schema.]trigger
{ BEFORE | AFTER }
{ INSERT | DELETE | UPDATE [ OF COLUMN column-list ] }
ON [schema.]table
[ FOR EACH ROW ]
{ sql | pl/sql }
SQL> CREATE OR REPLACE trigger01 BEFORE UPDATE OF sal ON emp FOR EACH ROW
2 BEGIN
3 INSERT INTO emp_sal_history VALUES (empno, :OLD.sal, CURRENT_TIMESTAMP);
4 END;
5 /
トリガーが作成されました。
SQL | :OLD.列名 | :NEW.列名 |
---|---|---|
INSERT | NULL | 更新後の値 |
UPDATE | 更新前の値 | 更新後の値 |
DELETE | 更新前の値 | NULL |
SQL> CREATE OR REPLACE trigger01 BEFORE UPDATE ON emp FOR EACH ROW
2 BEGIN
3 INSERT INTO emp_history VALUES (:OLD.sal, :OLD.comm, CURRENT_TIMESTAMP);
4 END;
5 /
トリガーが作成されました。
自分のスキーマ内の表に対するトリガーを自分のスキーマ内に作成する場合は、CREATE TRIGGER システム権限が必要である。
任意のスキーマ内の表に対するトリガーを任意のスキーマ内に作成する場合は、CREATE ANY TRIGGER システム権限が必要である。
DATABASE に対するトリガーを作成する場合は、さらに ADMINISTER DATABASE TRIGGER システム権限が必要である。
Oracle 2023. CREATE TRIGGER Statement. MySQL 8.0 Reference Manual
The PostgreSQL Global Development Group 2022. CREATE TRIGGER. PostgreSQL 15.0 Document
Microsoft 2023. CREATE TRIGGER (Transact-SQL)