mysql auto_increment自增初始值與步長


 

MySQl自增列起始與步長

自增初始值

一、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;

總結:

設定自增初始值:

  • alter table 表名 auto_Increment=n 通過alter方法設定初始值

    • 如果原表有數據則自增初始值設定不生效

    • 如果原表無數據,或者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 (關閉會話,再進行數據庫操作不恢復到默認值)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM