在Oracle中可以用SEQUENCE生成自增字段。Sequence序列是Oracle中用于生成数字序列的对象,可以创建一个唯一的数字作为主键。
需求:在itpux下创建表tasks、利用触发器实现自动递增序号
1、创建表
CREATE TABLE tasks(
id NUMBER PRIMARY KEY,
title VARCHAR2(255) NOT NULL
);
2、创建序列
CREATE SEQUENCE itpux_seq
INCREMENT BY 10
START WITH 10
MINVALUE 10
MAXVALUE 100
CYCLE
CACHE 2;
创建的Sequence名称itpux_seq,从10开始,递增10,最小值为10,最大值为100。由于CYCLE选项,序列一旦达到100就返回10
3、创建触发器
CREATE OR REPLACE TRIGGER trg_test
BEFORE INSERT ON tasks
FOR EACH ROW
BEGIN
:new.id := itpux_seq.NEXTVAL;
END;
/
4、插入数据
INSERT INTO tasks (title) VALUES (‘Test1’);
INSERT INTO tasks (title) VALUES (‘Test2’);
INSERT INTO tasks (title) VALUES (‘Test3’);
INSERT INTO tasks (title) VALUES (‘Test4’);
INSERT INTO tasks (title) VALUES (‘Test5’);
INSERT INTO tasks (title) VALUES (‘Test6’);
commit;
5、查询数据