oracle实现主键自增

oracle实现主键自增

前言:oracle不像mysql一样,支持主键自增。oracle需要序列(sequence)来间接实现主键自增。

创建表:(例如创建用户表)
create table t_user(
id number(10) not null, //主键id
username varchar2(40) not null, //用户名
password varchar2(40) not null, //密码
primary key(id), //标记主键是哪个
foreign key(role_id) references t_role(role_id) //设置外键role_id,关联表t_role
);

创建序列:(例如用户序列)
create sequence seq_user //序列名为seq_user
start with 1 //以该值开始自增或自减
increment by 1 //每次自增1
maxvalue //最大值;设置NOMAXVALUE表示无最大值
minvalue //最小值;设置NOMINVALUE表示无最小值
CYCLE or NOCYCLE //设置到最大值后是否循环;
cache 20 //指定可以缓存 20 个值在内存里;如果设置不缓存序列,则写NOCACHE
order or noorder //设置是否按照请求的顺序产生序列

创建触发器:(例如用户触发器)
create trigger trigger_user //出发器名trigger_user
before insert on t_user for each row when (new.id is null) --只有在id为空时,启动该触发器生成id号
begin
select seq_user.nextval into:new.id from dual;
end;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值