Oracle设置主键自增

oracle没有mysql那样可以有自增主键,需要自己通过创建序列才能实现自增

/*创建自增序列*/
CREATE SEQUENCE CMB_CHINA_CITYS_ID
MINVALUE 1       --最小值
NOMAXVALUE       --不设置最大值
START WITH 1     --从1开始计数
INCREMENT BY 1   --每次加1
NOCYCLE          --一直累加,不循环
NOCACHE;         --不建缓冲区

说明:

CMB_CHINA_CITYS_ID:序列名称

插入语句的时候就可以使用CMB_CHINA_CITYS_ID.nextval,方式来获取序列

 上面的只是自动创建ID,插入数据的时候得手动调用,如果想方便一点,我们还可以加入一个触发器,当程序插入数据之前触发

CREATE OR REPLACE TRIGGER TRIGGER_TABLE_AUTO_INCREA_ID
BEFORE INSERT ON TABLE_NAME    
FOR EACH ROW    
DECLARE  
BEGIN    
SELECT TABLE_NAME.NEXTVAL INTO :NEW.ID FROM DUAL;  
END TRIGGER_TABLE_AUTO_INCREA_ID;

说明:

TRIGGER_TABLE_AUTO_INCREA_ID:触发器名称

TABLE_NAME:表名

原文地址:https://www.cnblogs.com/cnsevennight/p/6636345.html