-
自增长键
# 查看自增长键配置 >>> SHOW VARIABLES LIKE 'auto_inc%'; auto_increment_increment 1 # 步长 auto_increment_offset 1 # 初始值
假设,某次要插入的值是X,当前的自增值是Y
-
如果X<Y,那么这个表的自增值不变
-
如果X>=Y,就需要把当前自增值修改为新的自增值
新的自增值生成算法是:从
auto_increment_offset
(初始值)开始,以auto_increment_increment
(步长)为步长,持续叠加,直到找到第一个大于X的值,作为新的自增值.自增字段必须是主键。
-
-
使用案例
-
创建新表时指定自增长键
create table test(id int primary key auto_increment,name VARCHAR(20)); INSERT INTO test(name) values ('111'),('123');
-
修改已建好的表
ALTER TABLE <table_name> CHANGE ID id int auto_increment; # id必须是主键 alter table table_name modify id int auto_increment; ALTER TABLE <table_name> ADD COLUMN id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY; # 新建一列 ALTER TABLE <table_name> MODIFY id INT(10) UNSIGNED AUTO_INCREMENT FIRST; # 将最后一列移动到第一列 alter table bu_staff auto_increment=10000; # 给自增值设置初始值
基本命令格式如下:
ALTER TABLE tbl_name MODIFY col_name column_definition
其中column_definition字段需要包括以下内容:
1、该列的数据类型及AUTO_INCREMENT字段;
2、如该列必须为NOT NULL及PRIMARY KEY(UNIQUE)属性。如果不是,需添加相应定义。 -
清空表内数据,包括自增id
truncate table <table_name>;
-
如何避免断层
使用自增主键,如果删除一段记录,新插入数据不考虑删除行为,会自动增长。这样自增主键就无法表示表中总体数据量了。
想要实现自增主键不受删除影响,需要在每次删除以后都重置自动增长的位置。就是
auto_increment_offset
这个参数。ALTER TABLE <table_name> AUTO_INCREMENT=<num>;
-
References
MySQL自增长键理解
猜你喜欢
转载自blog.csdn.net/The_Time_Runner/article/details/105353593
今日推荐
周排行