Oracle设置主键自增

时间:2021-01-28 06:26:09

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:表名