怎么设置主键自增

怎么设置主键自增,第1张

以sqlserver为例,可用如下语句设置:

create table test
(id int identity(1,1),primary key(id),
name varchar(10))

其中identity(1, 1)为设置主键自增的部分,前边一个1表示从1开始计数,后边一个1表示每次增加的数量。primary key(id)代表id列为主键。

连续执行如下语句:

insert into test(name) values ('a')
insert into test(name) values ('b')
insert into test(name) values ('b')

如图可见,id列达到了自增的目的。

自增列必须是int类型。
具体的修改语句的话,前面的这位已经贴出来了。
alter table yourtablename change id id int auto_increment;
补充一点:修改对于之前已经插入的数据不起作用,对于修改后插入的数据起效。

如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值;
也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填;
具体:
1创建数据库
create table if not exists userInfo (
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(50) NOT NULL,
password varchar(50) NOT NULL
);1234512345
2插入数据记录
insert into userInfo values(1,'aaa','1212');11
当数据表中有自增长主键时,当用SQL插入语句中插入语句带有ID列值记录的时候;
如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值;
也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填;
这种情况在进行插入的时候,两种解决方法:
①可以把id的值设置为null或者0,这样子mysql都会自己做处

如果你数据库已经建立 用这个方法:

ALTER TABLE `test` CHANGE `id` `id` INT(11) NOT NULL AUTO_INCREMENT;

如果你数据库没有建立  就用CREATE :

如果你用的数据库软件 比如Navicat for MySQL。  那么在设计表选项里有设置自动增长的,打上勾

主键一般要设置成自增。
所谓自增,就是在插入的时候,该字段不需要赋值,会自动+1;
如果我的表有id,name两个字段,id自增。插入的时候只需这样:
insert
into
tablename(name)
values('zhangsan');//id会自动有值
如果你没有自增,那就要指明字段了:
insert
into
tablename(id,name)
values(1,'zhangsan');//id不会自动有值

就我所知这个好像无法实现,就算你自己编译mysql恐怕也很难。因为last_insert_id()这个内置的函数返回最近一次插入的自增长ID,当没有符合条件的ID时,它返回0,所以如果自增长从0开始的话,这个返回值就很难判定到底是插入了一条自增长ID为0的记录还是没有符合条件的记录了。

比方说,你要创建一个表user_info,设置的主键名称是user_id,那么可以如下设置:
create table user_info
(user_id int primary key identity(1,1),//主键初值为1,每次自增1,数值可变化,但要符合之前定义的类型
user_name varchar(20) not null,

)
希望能帮到你!~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13393981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存