触发器[理解]
注意:创建表作为验证时,不要再dba权限下建表,否则会无法删除
某个条件成立的时候,触发器里面所定义的语句就会被自动执行。
不需要人为调用也不可调用,触发条件在定义的时候已经设置好了
与表相关联、存储的pl/sql程序
DML(insert、update、delete)在指定表上发出时,自动执行触发器中定义的语句序列
类型 语句级和行级
语句级触发器
在指定语句执行之前或之后
执行一次,不管这条语句影响多少行
行级触发器 for each row
每一条记录都被触发
触发器适用条件
- 数据确认
- 实施复杂的安全检查
- 审计 跟踪表上做出的数据操作
- 数据备份和同步
--创建表空间
create tablespace lambor
logging
datafile 'c:\lambor.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
--建立主键的自增序列
--Orcle实现主键自动增长的序列,触发器
--建立数据表
create table test_increase01(
userid number(10) primary key,
--主键,自动增加
username varchar2(20)
);
drop table test_increase;
select * from test_increase01;
--创建自动增长序列
create sequence testincrease_sequence
increment by 1--每次加1个
start with 1
nomaxvalue
nocycle
cache 10;
--创建触发器
create trigger test_increase01 before
insert on test_increase01 for each row
begin
select testincrease_sequence.nextval into:new.userid from dual;
end;
--提交
commit;
--测试,反复执行
insert into test_increase01(username)values('test');
创建触发器,记录表的删除数据