语法格式:
create or replace trigger 触发器名字
before(/after) insert(delete ,update)---这个不能写select
on 表--在那张表建立触发器
for each row---行触发器
declare --申明
变量申明块
begin
执行语句块
end
条件谓词
inserting/deleting/updating 为什么要用这个 oracle触发器可以同时是插入或者更新,有时候我们需要知道是那个动作出发了 就要这几个条件词语。
oracle中 oid/new
oid的意思是针对数据库存在的那条数据做处理,而new是新的(没有的意思)不知道我说的很明白不?
例子:
当用户在t_sp表中插入一条数据 则插入用户的信息和时间。
t_sp数据脚本:
create table t_sp
(
t_id varchar2(40) primary key,
t_name varchar2(40),
t_sex char(2) check(t_sex in('男','女'))
)
user表
create table t_user
(
t_name varchar(40),
t_date date
)
触发器:
create or replace trigger t_juor
before insert on t_sp
for each row
declare
username varchar2(40);
begin
select user into username from dual;
if(username='t_sp') then
insert into t_user values(username,:new.t_date);
else
dbms_output.put_line('对不起你没有权限');
end if;
end;
以上是自学个人看法,如果朋友们有更好的也可以教教我,谢谢。