oracle11g自增主键

本文介绍如何在Oracle中通过序列和触发器实现表的自增主键,并提供了一个具体的例子,包括创建表、序列及触发器的具体SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle的自增主键需要用序列和触发器来实现,

我们首先创建一张表:主键为int,实现自增


createtableTEST

 

(

 

  ID intPRIMARYKEY,

 

  test1 varchar2(20),

 

  test2 varchar2(20),

 

  test3 varchar2(20)

)

 

 

创建一个序列:


create sequence SEQ_TEST

 

minvalue 1    --最小值

 

maxvalue 999999999999999999999999999 --最大值

 

start with 1 ---1开始

 

increment by 1 ---每次加1

 

nocycle        --一直累加,不循环

       nocache;

 

 

创建一个触发器实现数据插入时主键自增:

 


CREATE OR REPLACE TRIGGER tg_test

 

//test表名,id主键名,seq_test.nextval序列

 

BEFORE INSERT ON test

FOR EACH ROW WHEN (new.id is null)

 

     begin

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

 

end;

 

 

可以看出当插入数据主键为空时,会使用序列产生自增主键

 

//------------------触发器样式

 

CREATE OR REPLACE TRIGGER TRI_SCORE

 

BEFORE INSERT OR UPDATE ON XUANKE

 

FOR EACH ROW

 

BEGIN

 

//如果score为空,则令score=0

 

  IF :new.SCORE IS NULL THEN :new.SCORE:= 0;

 

    END IF;

 

END;

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值