Oracle 触发器
在写业务需求作业时,遇到过这么一个问题:
如何往数据库里按顺序插入数据往下自增长呢?
触发器便是一个很好的处理方式。
那么什么是触发器呢?
所谓的触发器,简而言之,就是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。
下面是一个简单的创建触发器的SQL代码:
/*建立触发器或取代原有触发器*/
create or replace trigger trg_cloud /*trg_cloud为创建的触发器名字*/
before insert on student /*student为表名*/
for each row /*对表的每一行触发器执行一次*/
begin
select autoid.nextval into:new.sno from dual; /*autoid为创建的一个顺序*/
end;
意思时在student表插入数据之前进行触发该触发器,并按创建的顺序autoid往下添加数据。其中new表示新加记录,后面sno为表主键编号,new.sno为一个变量。
该触发器属于行级触发器中的before触发器。
补充autoid顺序创建的SQL代码:
CREATE SEQUENCE AUTOID
MINVALUE 1
MAXVALUE 10000
INCREMENT BY 1
START WITH 1
CACHE 20
ORDER
NOCYCLE;
student表内容: