自增初始值
一、alter的使用
默認初始值為1 步長為1的情況
1、建表
2、插入數據
當插入數據可以看到步長為1,起始值為1
3.增加一列數據時
默認在加上步長
4.刪除后在原表后增加一列數據的情況
原表數據剔除后依舊在原基礎上遞增,這里和delete from 有關
5.修改auto_increment后,插入一行數據后,原表遞增情況
alter table 表名 auto_Increment=n;
(1)、未改變:原表內有一行數據 auto_increment修改 初始值依舊為1,步長為1
(2)當原表內無數據時,auto_Increment alter后會發生改變
初始值為設定值,步長依舊為1
a、使用delete from 刪除時
b、使用truncate table use 刪除時
二、在新建表時設定auto_increment
(1)、建表時設定auto_increment 的值初始值可變,步長不變
步長
自增步長
基於會話級別:
-
show session variables like 'auto_inc%"; --查看會話步長
-
set session auto_increment_increment=4;
這里新建了一個初始值為1的值,通過set sessionauto_increment_increment 步
-
-
set session auto_increment_offset=2; --設置自增起始值為2;
通過truncate table user_set 后重新設定起始值
可以看到這里起始值變成了2(由於上面設定了auto_increment_Increment的值,當前窗口口未結束,故步長還是為4)
基於全局級別
-
show global variables like 'auto_inc%"; --查看全局步長
-
set global auto_increment_increment=3; --設置全局步長為3 (關閉會話,再進行數據庫操作不恢復到默認值)
-
set global auto_increment_offset=2; --設置自增起始值為2;
總結:
設定自增初始值:
-
-
如果原表有數據則自增初始值設定不生效
-
如果原表無數據,或者delete、truncate了則alter設定依舊生效,步長某人為1
-
-
建表時設定auto_increment=某值 即可設定初始值
-
注意delete from 表格后,自增初始值會緊跟上次數
-
使用truncate table 表格 則不會
-
-
通過set session auto_increment_Increment =某值,可以改變該窗口會話下的初始值,同樣注意是否原數據,以及刪除方式delete 與truncate的區別
-
set global auto_increment_increment= 某值 ,改變全局步長,步推薦
設定自增步長:
-
set session auto_increment_increment=4;
-
set global auto_increment_increment=3; --設置全局步長為3 (關閉會話,再進行數據庫操作不恢復到默認值)