社区
MySQL
帖子详情
怎么样让带有auto_increment属性的id列中一些记录被删除之后,后面的id自动把前面的填充满呢?
lianglin999
2011-04-25 10:47:37
假如我的id列(auto_increment)中有10条记录,1,2,3,4,5,6,7,8,9,10
我删除3,4,5之后
再插入数据,id值却是从11开始,
有没有什么办法让新插入的id值从删除的地方3开始增加呢?
...全文
503
11
打赏
收藏
怎么样让带有auto_increment属性的id列中一些记录被删除之后,后面的id自动把前面的填充满呢?
假如我的id列(auto_increment)中有10条记录,1,2,3,4,5,6,7,8,9,10 我删除3,4,5之后 再插入数据,id值却是从11开始, 有没有什么办法让新插入的id值从删除的地方3开始增加呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lianglin999
2011-04-26
打赏
举报
回复
感谢各位的回答,学习了
shine333
2011-04-25
打赏
举报
回复
[Quote=引用 5 楼 wwwwa 的回复:]
引用 4 楼 shine333 的回复:
引用 1 楼 wwwwa 的回复:
备份数据(除了自增字段)->TRUNCATE tt;->插入记录
拜托,难道RDBMS等价于是excel(即使excel都可能存在vlookup之类的关联)
这样能够重新编号
[/Quote]
其他表呢?所以我说,数据库,不是excel。即使是excel都不能轻易变更ID,何况数据库。
WWWWA
2011-04-25
打赏
举报
回复
[Quote=引用 4 楼 shine333 的回复:]
引用 1 楼 wwwwa 的回复:
备份数据(除了自增字段)->TRUNCATE tt;->插入记录
拜托,难道RDBMS等价于是excel(即使excel都可能存在vlookup之类的关联)
[/Quote]
这样能够重新编号
shine333
2011-04-25
打赏
举报
回复
[Quote=引用 1 楼 wwwwa 的回复:]
备份数据(除了自增字段)->TRUNCATE tt;->插入记录
[/Quote]
拜托,难道RDBMS等价于是excel(即使excel都可能存在vlookup之类的关联)
ACMAIN_CHM
2011-04-25
打赏
举报
回复
TRUNCATE TABLE table1
或者
alter table table1 auto_increment=1
加油馒头
2011-04-25
打赏
举报
回复
楼主你说的真不行
要么自己动态取得最大值,插入
shine333
2011-04-25
打赏
举报
回复
首先,auto_increment不能,而且即使能够实现,也绝对得不偿失,即使你能够设置下一个ID=3,试问,在插入了3条记录以后(3,4,5),下一个ID应该=6吧,可是显然插入不了。这个时候有两种可能:
1,插入失败,但ID自增,按照你的例子,你可能需要插入失败5次,第六次(ID=11)才能操作成功;
2,数据库帮你负责找到下一个合适的位置。
无论哪种情况,当你的数据库有几百万甚至更多的数据的时候,显然是个灾难!
WWWWA
2011-04-25
打赏
举报
回复
备份数据(除了自增字段)->TRUNCATE tt;->插入记录
wdar1314
2011-04-25
打赏
举报
回复
使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器
wwwwb
2011-04-25
打赏
举报
回复
[Quote=引用 6 楼 shine333 的回复:]
引用 5 楼 wwwwa 的回复:
引用 4 楼 shine333 的回复:
引用 1 楼 wwwwa 的回复:
备份数据(除了自增字段)->TRUNCATE tt;->插入记录
拜托,难道RDBMS等价于是excel(即使excel都可能存在vlookup之类的关联)
这样能够重新编号
其他表呢?所以我说,数据库,不是excel。即使是excel都不能轻易变更……
[/Quote]
1、楼主没有说明是否有其它表关联;
2、就楼主的问题,重新编号是比较好的方法;
3、当然也可以用SQL语句找出断号,再插入表中。
ACMAIN_CHM
2011-04-25
打赏
举报
回复
[Quote=引用楼主 lianglin999 的回复:]
假如我的id列(auto_increment)中有10条记录,1,2,3,4,5,6,7,8,9,10
我删除3,4,5之后
再插入数据,id值却是从11开始,
有没有什么办法让新插入的id值从删除的地方3开始增加呢?
[/Quote]如果是删除3,4,5,剩下 1,2,6,7,8,9,10则你无法设置MYSQL自动从3开始。除非你自己使用触发器。
MySQL 中主键的
AUTO
_
INCREMENT
详解
避免手动插入唯一
ID
,提升数据管理的效率。,以确保每一行数据都有唯一的标识符。💡 这会使下一个插入的数据。的列,并且通常作为主键。MySQL 允许自定义。在 MySQL 中,
MySQL讲义第13讲——完整性约束之
auto
_
increment
MySQL讲义第13讲——完整性约束之
auto
_
increment
在 MySQL 中可以利用
auto
_
increment
参数设置某一列为自增列。当设定某个字段为该
属性
之后
,在没有为该列提供数据的时候,系统会根据之前已经存在的数据进行
自动
增加后,
填充
数据。 一、自增列的定义 定义为自增的列数据类型必须是整数类型,当用户插入数据的时候,如果没有给定自增列的值,系统在原始值的基础上加上步长生成自增列的数据。 注意事项: (1)指定了
AUTO
_
INCREMENT
的列必须要建索引,不然会报错,索引可以为主键
033、T
iD
B特性_
AUTO
_
INCREMENT
AUTO
_
INCREMENT
: 是⽤于⾃动
填充
默认字段值的
属性
。注意:这个会报错,提示插入的是重复值。
auto
_
increment
属性
。
mysql
自动
填写
id
在使用数据库时我们经常要使作为主键的某列
自动
按顺序填写,比较常见的就是
id
字段,可以用一下语句实现
id
字段的
自动
填写: CREATE TABLE students (
id
MEDIUMINT NOT NULL
AUTO
_
INCREMENT
, //设置
id
的类型为mediumint,且非空自增1并填写 name CHAR(30) NOT NULL, PRIM
MySQL:列
属性
目录 列
属性
NULL 默认值 列描述 主键
自动
增长 唯一键 列
属性
列
属性
又称之为字段
属性
,在mysql中一共有6个
属性
:null,默认值,列描述,主键,唯一键和
自动
增长 NULL 如果对应的值为YES表示该字段可以为NULL 1、 在设计表的时候,尽量不要让数据为空 2、 mysql的
记录
长度为65535个字节,如果一个表中有字段允许为NULL,那么系统就会设计...
MySQL
57,064
社区成员
56,762
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章