转一个Oracle创建自动增长的例子

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

步骤一:创建序列
Sql代码
-- CREATE SEQUENCE  
CREATE SEQUENCE INNERID 
MINVALUE 1 
MAXVALUE 99999999999999 
START WITH 1 
INCREMENT BY 1 
CACHE 20 
ORDER; 
步骤二:创建表
Sql代码
CREATE TABLE ADMIN2 
(ID VARCHAR2(20),NAME VARCHAR2(10)); 

步骤三:使用INNERID的属性插入值:
--INNERID.currval 指当前序列
--INNERID.nextval 指下一个序列
--不断的插入序列的下一个值.
Sql代码
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'); 
得到的结果:
Java代码
    ID  NAME     
1   A    
2   B    
3   C    
4   D 
虽然通过上面的方式我们可以实现自增长列,但是还可以通过触发器实现更简单的操作。

步骤四:在ADMIN2表上创建触发器
Sql代码
--ADMIN2 ID 的触发器 
CREATE OR REPLACE TRIGGER ADMIN_TG 
BEFORE INSERT ON ADMIN2 FOR EACH ROW 
BEGIN 
SELECT INNERID.NEXTVAL INTO :NEW.ID FROM DUAL; 
END; 
步骤五:通过简单的方式插入记录:
Sql代码
INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ2'); 
INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ3'); 
INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ4'); 
INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ5'); 
查询结果:
Java代码
ID  NAME     
    5   ZDZ2     
    6   ZDZ3 
    7   ZDZ4     
    8   ZDZ5 

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

你可能感兴趣的:(oracle,职场,例子,自动,休闲)