0
点赞
收藏
分享

微信扫一扫

Navicat 如何创建序列?

1.情景展示

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

2.方式一

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

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

Navicat 如何创建序列?_主键

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

Navicat 如何创建序列?_插入数据_02

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

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

Navicat 如何创建序列?_触发器_03

保存成功

Navicat 如何创建序列?_触发器_04

3.方式二

通过SQL创建序列

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

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

Navicat 如何创建序列?_后台开发工具_05

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;

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

Navicat 如何创建序列?_后台开发工具_06

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

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

写在最后

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


作者:Marydon



举报

相关推荐

0 条评论