Navicat 如何创建序列?

1.情景展示

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

2.方式一

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

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

Navicat 如何创建序列?

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

Navicat 如何创建序列?

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

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

Navicat 如何创建序列?

保存成功

Navicat 如何创建序列?

3.方式二

通过SQL创建序列

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

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

Navicat 如何创建序列?

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 如何创建序列?

如果报错信息如下:

ORA-24344: success with compilation error

选中表--》右键--》设计表--》触发器;

Navicat 如何创建序列? 

可以设置触发器的时机:插入、更新、删除;

指定关联的字段以及触发的时机:上述操作前触发还是操作后触发;

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

写在最后

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

 相关推荐:

上一篇:3. Navicat Premium:导出excel文件


下一篇:Navicat Premium从远程Mysql数据库复制到本地数据库