Oracle创建表设置自动增长列范例

本文详细介绍如何在Oracle数据库中创建用户表,并通过序列和触发器实现自动增长ID的功能。文章包括具体的SQL语句,从创建表到序列、触发器的设置及测试,最后还涉及了序列修改的方法。

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

1、创建一个用户表t_sys_user,其中有id,login_name,login_pwd三个字段,ID为自动增长列:

create table t_sys_user
(
  id number(6) not null primary key,
  login_name varchar2(50) not null,
  login_pwd varchar2(50) not null
);

 2、创建序列:

create sequence seq_user
       increment by 1		--指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。
       start with 1		--指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。
       maxvalue 9999		--指定序列可生成的最大值。
       cycle nocache		--一直累加,不循环 

 3、创建触发器:

create or replace trigger tri_user
           before insert on t_sys_user for each row
       begin
           select seq_user.nextval into:new.id from dual; 	--这里是最容易出错的地方
       end;
       /

 

 4、测试:

insert into t_sys_user (login_name,login_pwd) values ('zhanggc','123456');

 

5、更改序列:

create sequence seq_user
       increment by 1		
     start with 1		     
     maxvalue 9999		
    cycle nocache	

  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值