📄 trigger.sql
字号:
/*
* Trigger.sql
* Chapter 3, Oracle10g PL/SQL Programming
* by Ron Hardman, Mike McLaughlin, Scott Urman
*
* This script demonstrates the use of a trigger
*/
exec clean_schema.trigs
exec clean_schema.procs
exec clean_schema.tables
set feedback on
set pages 9999 serveroutput on size 1000000
CREATE TABLE authors (
id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50)
);
INSERT INTO authors (id, first_name, last_name)
VALUES (1, 'Marlene', 'Theriault');
INSERT INTO authors (id, first_name, last_name)
VALUES (2, 'Rachel', 'Carmichael');
INSERT INTO authors (id, first_name, last_name)
VALUES (3, 'James', 'Viscusi');
INSERT INTO authors (id, first_name, last_name)
VALUES (4, 'Michael', 'Abbey');
INSERT INTO authors (id, first_name, last_name)
VALUES (5, 'Michael', 'Corey');
INSERT INTO authors (id, first_name, last_name)
VALUES (6, 'Scott', 'Urman');
INSERT INTO authors (id, first_name, last_name)
VALUES (7, 'Ron', 'Hardman');
INSERT INTO authors (id, first_name, last_name)
VALUES (8, 'Mike', 'McLaughlin');
COMMIT;
PROMPT
PROMPT ** This was the original record
PROMPT
SELECT id, first_name, last_name
FROM authors
WHERE last_name = 'HARDMAN';
PROMPT
PROMPT ** Create an AFTER UPDATE trigger on the AUTHORS table
PROMPT
CREATE OR REPLACE TRIGGER author_trig
AFTER UPDATE OF first_name
ON authors
FOR EACH ROW
WHEN (OLD.first_name != NEW.first_name)
BEGIN
DBMS_OUTPUT.PUT_LINE('First Name '
||:OLD.first_name
||' has change to '
||:NEW.first_name);
END;
/
PROMPT
PROMPT ** Update the first_name column
PROMPT
UPDATE authors
SET first_name = 'Ronald'
WHERE first_name = 'Ron';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -