DROP TABLE MYABCD;
DROP SEQUENCE AUTONUM;
DROP TRIGGER AUTONUM_ID;
--1.创建表 MYABCD
CREATE TABLE MYABCD(A INT, B DATE, C VARCHAR2(20), D NUMBER(10));
--2. 创建自增序列
CREATE SEQUENCE AUTONUM --创建名为AUTONUM的序列
INCREMENT BY 1 --自增长度为1
START WITH 1 --从1开始计数
MINVALUE 1 --最小值为1
NOMAXVALUE --没有最大值
NOCACHE; --不设置缓存
--3. 为表 MYABCD 创建触发器
CREATE OR REPLACE TRIGGER AUTONUM_ID
BEFORE INSERT
ON MYABCD
FOR EACH ROW
WHEN(NEW.A IS NULL)
BEGIN
SELECT AUTONUM.NEXTVAL INTO:NEW.A FROM DUAL;
END;
--4. 插入数据
INSERT INTO MYABCD(B, C, D) VALUES(TO_DATE(19930205,'YYYYMMDD'), 'ASDASD', 100);
--或者
INSERT INTO MYABCD VALUES(AUTONUM.NEXTVAL, TO_DATE(19930205,'YYYYMMDD'), 'QWE', 101);
SELECT * FROM MYABCD;