【发布时间】:2016-05-30 03:48:55
【问题描述】:
我在 MySQL 中创建了一个包含大约 10 个表的数据库,每个表都以列开头
SN INT NOT NULL AUTO_INCREMENT
SN 没有任何意义,只是区分可能重复/相似的名称/头衔等的主要因素
我现在将其移至 Oracle,并找到 this post here on stackoverflow 使触发器自动增加 SN 字段。基本上,
CREATE SEQUENCE user_seq;
CREATE OR REPLACE TRIGGER user_inc
BEFORE INSERT ON users
FOR EACH ROW
BEGIN
SELECT user_seq.NEXTVAL
INTO :new.SN
FROM dual;
END;
/
现在,如何重写该触发器一次以应用于所有其他表?因为否则我必须为许多表重写它,只需更改触发器名称和序列名称......我正在描绘类似的东西:
BEFORE INSERT ON users OR other_table OR another_one
我还找到了this post here,但其中的一个答案没有帮助,因为我认为许多表具有相同的 SN 字段是合理的,或者我误解了这一点。
另外,不是 Oracle 12c,所以没有标识列
提前致谢
我打算只对我提到的第一篇帖子发表评论,但如果没有更多声望点,我无法发表评论:/
【问题讨论】:
标签: oracle triggers auto-increment