暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle中自动递增序号的实现

还我至尊 2024-08-09
91

在Oracle中可以用SEQUENCE生成自增字段。Sequence序列是Oracle中用于生成数字序列的对象,可以创建一个唯一的数字作为主键。

需求:在itpux下创建表tasks、利用触发器实现自动递增序号

1、创建表
CREATE TABLE tasks(
id NUMBER PRIMARY KEY,
title VARCHAR2(255) NOT NULL
);

image.png

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
image.png

3、创建触发器
CREATE OR REPLACE TRIGGER trg_test
BEFORE INSERT ON tasks
FOR EACH ROW
BEGIN
:new.id := itpux_seq.NEXTVAL;
END;
/
image.png

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、查询数据
image.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论