读书人

Oracle中兑现自增长列

发布时间: 2012-10-31 14:37:31 作者: rapoo

Oracle中实现自增长列

在使用Oracle数据的过程中,经常会用到自增长列,但Oracle并没有提供直接实现自增长的方法,下面我们来看看如何自己实现此功能。

?

步骤一:创建序列

-- CREATE SEQUENCE CREATE SEQUENCE INNERIDMINVALUE 1MAXVALUE 99999999999999START WITH 1INCREMENT BY 1CACHE 20ORDER;

?步骤二:创建表

CREATE TABLE ADMIN2(ID VARCHAR2(20),NAME VARCHAR2(10));

?

步骤三:使用INNERID的属性插入值:

--INNERID.currval 指当前序列

--INNERID.nextval 指下一个序列

INSERT INTO ADMIN2 VALUES (INNERID.NEXTVAL,'A');INSERT INTO ADMIN2 VALUES (INNERID.NEXTVAL,'B');INSERT INTO ADMIN2 VALUES (INNERID.NEXTVAL,'C');INSERT INTO ADMIN2 VALUES (INNERID.NEXTVAL,'D');

?得到的结果:

 IDNAME1A2B3C4D

?虽然通过上面的方式我们可以实现自增长列,但是还可以通过触发器实现更简单的操作。

?

步骤四:在ADMIN2表上创建触发器

--ADMIN2 ID 的触发器CREATE OR REPLACE TRIGGER ADMIN_TGBEFORE INSERT ON ADMIN2 FOR EACH ROWBEGINSELECT INNERID.NEXTVAL INTO :NEW.ID FROM DUAL;END;

?步骤五:通过简单的方式插入记录:

INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ2');INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ3');INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ4');INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ5');

?查询结果:

IDNAME5ZDZ26ZDZ37ZDZ48ZDZ5

?

参考资料:http://tech.ccidnet.com/art/1107/20080528/1460789_1.html

读书人网 >软件架构设计

热点推荐