ORACLE主键自增

在使用mysql中我们使用auto_increment就很容易的来实现主键自增,但是在oracle中并没有这个关键字的存在,所以我们需要通过别的方法来实现。

序列

序列(Sequence),序列生成器,用于提供一系列的数字,使用序列生成唯一键。每次访问序列,序列按照一定的规律增加或者减少。
序列的定义存储在SYSTEM表空间中,序列不像表,它不会占用磁盘空间。
序列独立于事务,每次事务的提交和回滚都不会影响序列。且一个序列只能对应一张表

1.使用任意一张测试表

2.序列创建

-- PD_TEL_BACK_SEQUENCE 定义你的序列名称
CREATE SEQUENCE PD_TEL_BACK_SEQUENCE INCREMENT BY 1 -- 每次加几个 

START WITH 1 -- 从1开始计数

 NOMAXVALUE -- 不设置最大值

 NOCYCLE -- 一直累加,不循环

 NOCACHE -- 不建缓冲区 


3.创建触发器

CREATE OR REPLACE TRIGGER PD_TEL_BACK_SEQUENCE 
-- 当表PD_TEL_BACK进行insert并且id为空的时候
BEFORE INSERT ON PD_TEL_BACK FOR EACH ROW WHEN (new.id is null)

begin

select PD_TEL_BACK_SEQUENCE.nextval into:new.id from dual;

end;

4.执行

尝试的insert一条记录,无需传入id。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈橙橙丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值