本文目錄一覽:
如何更改mysql中auto
–創建表時指定AUTO_INCREMENT自增值的初始值:
mysqlCREATE TABLE BIN_TBL (ID INT(5) PRIMARY KEY AUTO_INCREMENT)AUTO_INCREMENT=100;
–通過ALTER TABLE 修改初始值(但要大於表中的AUTO_INCREMENT自增值,否則設置無效):
mysqlATLER TABLE BIN_TBL AUTO_INCREMENT=100;
–如果自增序列的最大值被刪除了,則在插入新記錄時,該值被重用。
就是說如果表中原本有AUTO_INCREMENT屬性值連續為78、100的值,但100這個數據被刪除了,下此再添加數據的時候自增值為101,100被重用了。
即使在你將整個表中的所有數據delete清空後,之前的自增序列最大值還是會被重用。解決辦法是:
使用ATLER TABLE BIN_TBL AUTO_INCREMENT=0;重新設置自增初始值。
———————————————————————————————————————————————–
–設置AUTO_INCREMENT_INCREMENT以及AUTO_INCREMENT_offset用戶變量值:(重啟MySQL之後,這些修改會恢復為初始值1)
mysqlSET auto_increment_increment=10; #自增量每次增加的值改為10,
mysqlSET auto_increment_offset=2; #第一次加載數值時的偏移值的個位值
mysqlSHOW VARIABLES LIKE ‘AUTO_INC%’; #查看修改後變量的值
mysql 怎麼設置 auto
創建表時指定AUTO_INCREMENT自增值的初始值:
mysqlCREATE TABLE BIN_TBL (ID INT(5) PRIMARY KEY AUTO_INCREMENT)AUTO_INCREMENT=100;
通過ALTER TABLE 修改初始值(但要大於表中的AUTO_INCREMENT自增值,否則設置無效):
mysqlATLER TABLE BIN_TBL AUTO_INCREMENT=100;
mysql中auto_increment是幹什麼的?
MySQL的中AUTO_INCREMENT類型的屬性用於為一個表中記錄自動生成ID功能.
可在一定程度上代替Oracle,PostgreSQL等數據庫中的sequence。
在數據庫應用,我們經常要用到唯一編號,以標識記錄。在MySQL中可通過數據列的AUTO_INCREMENT屬性來自動生成。
可在建表時可用「AUTO_INCREMENT=n」選項來指定一個自增的初始值。
可用alter table table_name AUTO_INCREMENT=n命令來重設自增的起始值。
當插入記錄時,如果為AUTO_INCREMENT數據列明確指定了一個數值,則會出現兩種情況,
情況一,如果插入的值與已有的編號重複,則會出現出錯信息,因為AUTO_INCREMENT數據列的值必須是唯一的;
情況二,如果插入的值大於已編號的值,則會把該插入到數據列中,並使在下一個編號將從這個新值開始遞增。也就是說,可以跳過一些編號。
如果自增序列的最大值被刪除了,則在插入新記錄時,該值被重用。
如果用UPDATE命令更新自增列,如果列值與已有的值重複,則會出錯。如果大於已有值,則下一個編號從該值開始遞增。
擴展資料
在使用AUTO_INCREMENT時,應注意以下幾點:
1、AUTO_INCREMENT是數據列的一種屬性,只適用於整數類型數據列。
2、設置AUTO_INCREMENT屬性的數據列應該是一個正數序列,所以應該把該數據列聲明為UNSIGNED,這樣序列的編號個可增加一倍。
3、AUTO_INCREMENT數據列必須有唯一索引,以避免序號重複(即是主鍵或者主鍵的一部分)。
4、AUTO_INCREMENT數據列必須具備NOT NULL屬性。
5、AUTO_INCREMENT數據列序號的最大值受該列的數據類型約束,如TINYINT數據列的最大編號是127,如加上UNSIGNED,則最大為255。
一旦達到上限,AUTO_INCREMENT就會失效。
6、當進行全表刪除時,MySQL AUTO_INCREMENT會從1重新開始編號。
這是因為進行全表操作時,MySQL(和PHP搭配之最佳組合)實際是做了這樣的優化操作:先把數據表裡的所有數據和索引刪除,然後重建數據表。
7、如果想刪除所有的數據行又想保留序列編號信息,可這樣用一個帶where的delete命令以抑制MySQL(和PHP搭配之最佳組合)的優化:delete from table_name where 1。
也可以用last_insert_id()獲取剛剛自增過的值。
參考資料:IT專家網-MYSQL中取得最後一條記錄
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/293661.html