Navicat 如何创建序列?

1.情景展示

如何使用Navicat为Oracle数据库创建序列?

2.方式一

打开Navicat--》打开Oracle连接;

工具栏--》其它--》序列;

将会打开序列界面--》右键--》新建序列;

递增:1,开始值:1,最小:1,最大:9999999999999999999;

按Ctrl+s进行保存,并设置序列的名称,通常,它的构成是:SEQ_表名。

保存成功

3.方式二

通过SQL创建序列

CREATE SEQUENCE SEQ_META_DATABASE
minvalue 1
maxvalue 9999999999999999999
INCREMENT BY 1
START WITH 1;

新建查询,将以上代码粘贴进去,点击“运行”即可。

4.拓展延伸

我们知道:在mysql中,当将表的主键设置成自增列后,在后续,往表中插入数据的时候,如果我们主动给主键列插入值的话,mysql就会使用自增列,为其自动添加值。

在Oracle当中,我们是不是也可以搞成这样的效果?即:

当我们手动插入数据的时候,如果没有给主键设值的话,也让数据库默认取调用序列并将值插入表主键。

答案是可以的:通过序列和触发器来实现。

第一步:按照上面,给表创建序列;

第二步:设置对应表中字段主键字段的触发器。

CREATE 
	OR REPLACE TRIGGER 触发器名称 BEFORE INSERT ON 表名 FOR EACH ROW
	WHEN ( NEW.表主键列 IS NULL ) BEGIN
	SELECT
		表对应的序列.NEXTVAL INTO :NEW.表主键列 
	FROM
	DUAL;
END;

新建一个查询,将代码复制到查询窗口,点击“运行”;

如果没有报错信息,说明该触发器创建成功并且编译成功。

通过上述两步,实现在向表中插入数据前自动插入自增长的序列。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2022-02-15 19:16  Marydon  阅读(1286)  评论(0编辑  收藏  举报