Mysql,SqlServer,Oracle主键自动增长的设置

本文介绍了MySQL、SQLServer、Oracle等数据库中如何设置表的主键为自动增长标识符类型,以及如何在Oracle中通过序列从序列中获取自动增长的标识符并赋值给主键。

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

一、把主键定义为自动增长标识符类型

1.在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:

create table user(

id int auto_increment primary key not null,

name varchar(15)

)

2.在SQLServer中,如果把表的主键设为identity类型,数据库就会自动为主键赋值。例如:

create table user(

id int identity(1,1) ,

primary key not null,

name varchar(15)

)

一旦把id设为identity类型,SQLServer数据库会自动按递增的方式为主键赋值。identity包含两个参数,第一个参数表示起始值,第二个参数表示增量。

二、从序列中获取自动增长的标识符

在Oracle中,可以为每张表的主键创建一个单独的序列,然后从这个序列中获取自动增加的标识符,把它赋值给主键。例如一下语句创建了一个名为user_id_seq的序列,这个序列的起始值为1,增量为2。

create sequence user_id_seq increment by 2 start with 1

一旦定义了user_id_seq序列,就可以访问序列的curval和nextval属性。

curval:返回序列的当前值

nextval:先增加序列的值,然后返回序列值

以下sql语句先创建了user表,然后插入两条记录,在插入时设定了id和name字段的值,其中id字段的值来自于user_id_seq序列。最后查询user表中的id字段。

create table user(

id int primary key not null,

name varchar(15)

)

insert into user values(user_id_seq.curval, "name1"),(user_id_seq.nextval, "name2")

select id from user

如果在oracle中执行以上语句,查询结果为:

id

1

3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值