请Oracle高手这边走!

来源:百度知道 编辑:UC知道 时间:2024/06/08 11:36:37
小弟初学Oracle,今天遇到这么一个实例代码,看了许久不太明白。望大侠不吝赐教,给予语句详尽说明!小弟先谢过了。

CREATE OR REPLACE TRIGGER INSERT_TEST_INCREMENT_ID
BEFORE INSERT ON TEST_INCREMENT
REFERENCING
NEW AS new
OLD AS old
FOR EACH ROW
BEGIN
SELECT SEQ_TEST_INCREMENT.NEXTVAL INTO :new.ID FROM DUAL;
END;

创建触发器过程,我也不太明白。你查查有管资料,
CREATE OR REPLACE TRIGGER 如果有就替换 没有就直接创建触发器。。具体的我也不知道。不过在网上查找触发器应该能解决了,不用给我分了,我没帮上忙

在TEST_INCREMENT上创建insert触发器,在insert之前触发(行出发)
目的是查找一个序列的值

这是一个触发器创建SQL。为表TEST_INCREMENT创建基于行(FOR EACH ROW)的触发器,触发时机为插入记录前(BEFORE INSERT ON TEST_INCREMENT ),触发器名字为INSERT_TEST_INCREMENT_ID 。
该触发器实现的功能是自动为表TEST_INCREMENT的ID字段赋值,值是从SEQ_TEST_INCREMENT序列号中获取的。

CREATE OR REPLACE TRIGGER INSERT_TEST_INCREMENT_ID
BEFORE INSERT ON TEST_INCREMENT
REFERENCING
NEW AS new
OLD AS old
FOR EACH ROW
BEGIN
SELECT SEQ_TEST_INCREMENT.NEXTVAL INTO :new.ID FROM DUAL;
END;

行级触发器
CREATE OR REPLACE TRIGGER INSERT_TEST_INCREMENT_ID
--创建(或者代替)一个名字叫INSERT_TEST_INCREMENT_ID触发器
BEFORE INSERT ON TEST_INCREMENT
--在名叫TEST_INCREMENT的表执行插入操作之前做
REFERENCING --查询
NEW AS new --新值
OLD AS old --旧值
FOR EACH ROW --对每一行
BEGIN --开始
SELECT SEQ_TEST_INCREMENT.NEXTVAL INTO :new.ID FRO