记录一次oracle触发器demo的编写:
先创建三张表
图书表:books
表字段:
bno 书编号 | bname 书名 |
借书记录表:borrow
bno 书编号 | rdate 借书日期 | cno 借书卡号
特殊借书记录表:borrow_save (表结构 同borrow表)
需求:
写一个触发器,当借书的书名为"三国"的时候.在插入borrow的时候 会通过触发器插入 borrow_save表
触发器sql:
CREATE OR REPLACE TRIGGER tr_borrow_save --创建或者替换触发器名称为 tr_borrow_save
AFTER
INSERT
ON borrow
FOR EACH ROW --触发语句作用的每一条记录都被触发。在行级触
--发器中使用old和new伪记录变量, 识别值的状态。
declare
bno_ varchar2(20); --添加自定义字符串bno_ (必须要设定长度)
BEGIN
select bno into bno_ from books where bname = '三国'; --查询语句查询"三国"这本书的书编
--号并对 bno_进行赋值
if
:new.bno = bno_ --判断插入的书编号是否等于"三国"的书编号
then
insert into borrow_save values (:new.cno,:new.bno,:new.rdate);
end if;
end;
注意事项:
语法中语句的结束 分号(";") 很重要