Oracle触发器Trigger基础1

时间:2023-03-09 18:25:41
Oracle触发器Trigger基础1
/*
Trigger是作用在表上,或是数据库上,或是用户上。当用户在表上(其他)做某些操作时,trigger将会自己执行。
可以在表上:insert,update,delete
Trigger只对表的写入,修改、删除。
*/
/*
语法
CREATE [OR REPLACE] TRIGGER trigger名称
{ BEFORE | AFTER | INSTEAD OF }
– 在什么之前,或是在什么之后,用有具体的表上
– Instend of 替换用在view上面trigger
ON - 添加到什么什么上面
{ someTable} - 触发器作用在某个表上
[ for each row] – 行级触发器
}
[WHEN (条件,当什么时间触发下面的代码) ]
Declare
--..
Begin
...
End;
*/ --向一个表stud中写入数据,要求在后台输出一句:你写入成功了
create table tigger_t (
id int,
name varchar(30)
);
--修改表名
--rename old to new;
alter table TIGGER_T rename to trigger_t;
--还可以create 。。。。as select * ...
--drop 原来表名 --创建触发器
create or replace trigger t1
after insert on trigger_t
declare
begin
dbms_output.put_line('写入成功');
end;
--测试
set serveroutput on;
insert into trigger_t values(1,'jack');
commit;
--创建删除时的触发器
create or replace trigger t1
after delete on trigger_t--表级触发器,删除多少行只只能高兴一次plsql
for each row--行级,没行都会执行
declare
begin
dbms_output.put_line('删除成功');
end;
set serveroutput on;
delete from trigger_t;
commit;
select * from trigger_t;