oracle自增主键设置(sequence)

2012-12-24

oracle上弄一个自增主键是如此麻烦啊,mark一个备忘录

1.在sequences文件夹下新增一个sequence,这里面是截的编辑的界面

 

 

2.创建自增触发器,需要通过触发器实现自增,真悲剧

CREATE OR REPLACE TRIGGER "TR_表名" BEFORE INSERT ON 表名 FOR EACH ROW
DECLARE
v_newVal INTEGER := 0;
v_incval INTEGER := 0;
BEGIN
IF INSERTING AND :new.主键 IS NULL THEN
SELECT SEQ_表名.NEXTVAL INTO v_newVal FROM DUAL;
SELECT NVL(max(主键), 0) INTO v_incval FROM 表名;
LOOP
EXIT WHEN v_newVal > v_incval;
SELECT SEQ_表名.NEXTVAL INTO v_newVal FROM DUAL;
END LOOP;
:new.主键 := v_newVal;
END IF;
END;

作者:robotbird, 分类:关于代码 标签: oracle , 浏览(2066), 评论(0)
上一篇: oracle 查看系统参数sql
下一篇: 罗马的故事-苏拉

相关文章

(0)条评论 订阅

发表评论

电子邮件用于回复通知和avatar全球唯一头像 *

*