Oracle ID自增需要使用序列和触发器实现
实现如下:
--1.创建表
CREATE TABLE T_USER(
USER_ID INT PRIMARY KEY,
USER_NAME VARCHAR(30),
CREDITS INT,
U_PASSWORD VARCHAR(32),
LAST_VISIT DATE,
LAST_IP VARCHAR(23)
);
--2.建立一个sequence序列
CREATE SEQUENCE USER_ID_SEQ INCREMENT BY 1 START WITH 1;
--或者详细
create sequence table1_id
minvalue 1 //自增字段最小值
nomaxvalue //最大值 没有就算nomaxvalue
increment by 1 //每次增值1
start with 1 //起始值
nocache; //不缓存
--3.建立一个触发器:
CREATE OR REPLACE TRIGGER TRG_USER
BEFORE INSERT ON T_USER
FOR EACH ROW
BEGIN
SELECT USER_ID_SEQ.NEXTVAL INTO :NEW.USER_ID FROM DUAL; --这里是 NEW.主键ID
END TR_FCBOOK;
--4.插入一条数据测试
--注意:在执行INSERT语句时,values里面的列是char,varchar2等字符形式时加的是**单引号**!
INSERT INTO T_USER(USER_NAME,U_PASSWORD) VALUES('ADMIN','123456');
--5.删除表、序列、触发器
DROP TABLE T_USER;
DROP SEQUENCE USER_ID_SEQ;
DROP TRIGGER TRG_USER;