Oracle中实现主键自增长

注:转自本人于2017-04-08 11:30:43博客
在oracle数据库中实现主键的自增长并没有其他数据库如mysql那么便捷,在mysql中只需在主键定义后加auto_increment即可。
在oracle中实现主键的自增长需要除本身表以外,还需建立序列及触发器。以test表位例:
1,建立数据库表
create table test(
id integer not null,
name varchar2(20) not null,
constraint PK_test primary key (id))
2,建立序列test_Sequence
CREATE SEQUENCE test_Sequence increment BY 1 START WITH 1 nomaxvalue NOCYCLE ;(每次加一,以一开始,无上限值,不循环)
3,建一个触发器
create or replace trigger test_trigger
before insert on test
for each row
begin
select test_Sequence.nextval into:new.id from dual;
end;
最后插入数据,insert into test(name) values(‘jjj’),成功。
附:刚执行插入的时候报触发器无效且未通过验证,于是在pl/sql触发器里view发现创建触发器语句里诸多问号,估计是复制时格式不对,后面手动输入,解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值