oracle设置主键自增,两种方式:sql语句和navicat界面可视化创建

Oracle数据库设置主键自增

一,sql语句创建

oracle数据库与mysql数据库的主键自增设置是不同的。
mysql主键自增很简单,在创建主键的时候在主键字段后增加auto_increment就可以实现自增。
但是oracle相比下多了两步操作:
①创建序列:可以理解成创建一个规则—>

创建一个序列,名称为demo_seq,
值是从1开始,
每次递增1,
最大值(MAXVALUE是oracle默认的最大值),
当值递增到最大值时是否循环(NOCYCLE是不循环),

递增还是是否需要缓存(NOCACHE是不设置缓存)。缓存适合于批量插入的数据,就是一次性创建好指定数量的主键值,可以提高一定的插入性能,默认值20。

CREATE SEQUENCE demo_seq
START WITH 1
INCREMENT BY 1
MAXVALUE 9999999999999
NOCYCLE
CACHE 20;

②创建触发器:触发器是针对于表创建的,用于在什么时候触发调用已创建好的序列。

创建一个触发器,名称为demo_tri,
对于demo_table表每一行记录的插入,
当表的主键demoId为空时(new是关键字,不用改动),
开始
查询序列demo_seq的下一个值,并赋值给当前表的主键demoId
结束

CREATE TRIGGER demo_tri 
before
insert on demo_table for each row when (new.demoId
is null)
begin
select demo_seq.nextval into:new.demoId from dual;	
end;

二,使用navicat如何创建:

同样分为两个步骤:
①创建序列

1.选择如图位置的序列,点击。
在这里插入图片描述
2.输入相应的值,最后点击保存,输入序列名称,称,此处是:demo_seq
在这里插入图片描述
②创建触发器

1.创建触发器,同序列位置的那个列表点击触发器
在这里插入图片描述

2.然后点击右侧定义,sql内容如下。大意是查询出当前表格对应的序列的下一个值demo_sql.nextval,作为自增主键字段的值new.demoId

select demo_seq.nextval into:new.demoId from dual

在这里插入图片描述
3.最后点击保存,输入触发器名称。

至此主键自增的sql语句方式创建完毕,序列和触发器需要配合使用。另外再分享几个常用sql:

1.序列
#查看某个用户下所有序列
select * from dba_sequences where sequence_owner='LDYY';
#查看某个序列信息
select * from user_sequences  where  sequence_name ='demo_seq';
#删除序列
DROP SEQUENCE BDM_SEQ
2.触发器
//查看某个表的触发器
select trigger_name from all_triggers where table_name='demo_tri'
//启用和禁用
ALTER TRIGGER trigger_name DISABLE;
ALTER TRIGGER trigger_name ENABLE;
//删除触发器
DROP TRIGGER demo_tri

希望可以帮到你~

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Navicat设置SQL Server主键自增的方法如下: 1. 在Navicat中打开SQL Server数据库连接,并选择要设置主键自增的表。 2. 右键点击该表,选择"设计表"选项。 3. 在表设计界面中,找到要设置主键的字段,并确保该字段的数据类型为整数类型(如int)。 4. 在该字段的属性中,找到"标识"或"自增"选项,并将其设置为"是"。 5. 保存表设计的更改,并关闭表设计界面。 这样,你就成功地在Navicat设置SQL Server主键自增。请注意,Navicat只是一个数据库管理工具,实际上,设置主键自增是通过SQL语句来完成的。Navicat只是提供了一个可视化界面来方便用户进行操作。 #### 引用[.reference_title] - *1* *3* [Navicat设置Oracle数据库主键自增](https://blog.csdn.net/sssxlxwbwz/article/details/125365784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SQL设置自增主键](https://blog.csdn.net/kk5kk_/article/details/127734494)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值