【发布时间】:2018-08-07 20:27:35
【问题描述】:
我对 pl/sql 真的很陌生。我正在尝试做一个像这样的触发器(adr = 在删除行之后),但似乎我不能使用 ALTER SEQUENCE。这是删除一行后递减的正确方法还是应该使用过程?
CREATE OR REPLACE TRIGGER adr_trg
AFTER DELETE ON table
FOR EACH ROW
BEGIN
ALTER SEQUENCE table_seq INCREMENT BY -1;
END;
编辑:
我正在使用的序列:
CREATE SEQUENCE table_seq INCREMENT BY 1 START WITH 1;
我正在使用的触发器:
CREATE OR REPLACE TRIGGER bir_trg
BEFORE INSERT ON table
FOR EACH ROW
BEGIN
IF :new.id IS NULL
THEN
:new.id := table_seq.nextval;
END IF;
END bir_trg;
【问题讨论】:
-
这看起来很奇怪。为什么要减少删除语句的序列?
-
仅用于教育目的。
标签: oracle plsql triggers procedure