本文章来给大家总结现在常用的数据库主键自增长的设置方法,这里包括了:SQLServer、Oracle、MySQL 三种数据库了,有需要的朋友可进入参考。
主键自增长
MySQL的主键自增长只需将主键定义为AUTO_INCREMENT,如:
代码如下 | 复制代码 |
CREATE TABLE user |
SQLServer的主键自增长也很简单,只需将主键定义为IDENTITY,如:
1.新建一数据表,里面有字段id,将id设为为主键
代码如下 | 复制代码 |
create table tb(id int,constraint pkid primary key (id)) |
2.新建一数据表,里面有字段id,将id设为主键且自动编号
代码如下 | 复制代码 |
create table tb(id int identity(1,1),constraint pkid primary key (id)) |
3.已经建好一数据表,里面有字段id,将id设为主键
代码如下 | 复制代码 |
alter table tb alter column id int not null |
4.删除主键
代码如下 | 复制代码 |
Declare @Pk varChar(100); Select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID('tb') and xtype='PK'; if @Pk is not null exec('Alter table tb Drop '+ @Pk) |
Oracle的主键自增长需要通过自定义的 SEQUENCE:
先创建用户表 user:
代码如下 | 复制代码 |
CREATE TABLE user |
创建SEUQENCE:
代码如下 | 复制代码 |
CREATE SEQUENCE seq_user INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE; |
以上 sql 语句完成了一个序列(SEQUENCE)的建立过程,名称为seq_user,范围是从1开始到无限大(无限大的程度是由你机器决定的),
INCREMENT BY 1,seq每次加1;
START WITH 1,seq从1开始计数;
NOMAXVALUE,seq不设置最大值;
NOCYCLE,seq一直增加,不循环;如果你设置了最大值那么你可以用CYCLE,会使seq到最大之后循环;
NOCACHE,不建缓冲区,如果你给出了CACHE值(如CACHE 10)那么系统将自动读取你的CACHE值大小个seq,这样在反复操作时会加快运行速度,但如果遭遇意外情况如宕机了或Oracle死了,则下次取出的seq值将和上次的不连贯。
要在 user 表中插入新记录,必须使用 nextval 函数(该函数从 seq_user 序列中取回下一个值),我这可以这样插入数据:
代码如下 | 复制代码 |
INSERT INTO user(id,name,password) VALUES(seq_user.nextval,'sunyzc','123'); |
上面的 sql 会在 user 表中插入一条新记录。id 的赋值是来自 seq_user 序列的下一个数字。
也可以通过创建 TRIGGER 来实现插入时主键自增长:
代码如下 | 复制代码 |
CREATE TRIGGER 触发器名称 BEFORE |
然后这样直接插入数据:
代码如下 | 复制代码 |
INSERT INTO user(name,password) VALUES('sunyzc','123'); |
查看用户的所有序列(必须以管理员身份登录且用户名大写)
代码如下 | 复制代码 |
select * from dba_sequences where sequence_owner='用户名'; |
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔