1.
成都创新互联公司专注于郫都网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供郫都营销型网站建设,郫都网站制作、郫都网页设计、郫都网站官网定制、微信小程序定制开发服务,打造郫都网络公司原创品牌,更为您提供郫都网站排名全网营销落地服务。
支持设置自增列的值
ALTER
TABLE
table_name
AUTO_INCREMENT
=
1;
不过这种方式只能设置大于当前使用的值,不能设置小于等于当前已经使用的自增列的值。myisam如果设置小于等于,则自增列的值会自动设置为当前最大值加1。innodb则不会改变。
2.通过TRUNCATE把自增列设置为0,从MySQL
5.0.13开始TRUNCATE就能重置自增列为0.myisam和innode都是如此。
TRUNCATE
TABLE
table_name;
注意:TRUNCATE
会清空表中数据
3.drop和create重建表方式重置自增列为0
DROP
TABLE
table_name;
CREATE
TABLE
table_name
{
...
};
1、清空表,恢复到初始值:
2、修改为任意值:
上述语句中,table_name为表名,15为要修改的值,这样下次插入的数据的自增列的值就是15。
若修改的值与现有数据冲突,会自动修改为当前最大值+1。
如图所示,修改自增列id为11,虽然显示修改成功,但是id=11已经是现有值,再插入时会自动把自增列的值变为当前最大值(14)加1,也就是15
设置自增列
MYSQL的自增列一定要是有索引的列,设置种子值要在表的后面设置
--mysql
-- 设置自增ID从N开始
CREATE TABLE empautoinc(
ID INT PRIMARY KEY AUTO_INCREMENT
) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)
insert into empautoinc(id) values(null);
Query OK, 1 row affected (0.00 sec)
mysql select * from empautoinc;
+-----+
| ID |
+-----+
| 100 |
+-----+
1 row in set (0.00 sec)
show table status like 'empautoinc'G;
*************************** 1. row ***************************
Name: empautoinc
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 1
Avg_row_length: 16384
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: 101
Create_time: 2016-10-27 01:50:32
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
设置自增列的步长,可以分为全局级别和会话级别
如果是会话级别,那么当用户新建一个会话的时候,那么步长又回到了全局级别,所以mysql的步长跟sqlserver的步长有很大的不同
mysql不能设置为 表级别 的步长
私信666领取资料