詳細(xì)聊聊MySQL中auto_increment有什么作用
問題來源
很多時候,MySQL語句中會出現(xiàn)【auto_increment】這個詞匯,大多數(shù)時候,表都是自動生成的,剛開始學(xué)習(xí)MySQL數(shù)據(jù)庫時會學(xué)習(xí)到,后來,漸漸地可能會忘記,那么這個語句的作用到底是什么意思?下面,來匯總一下:
解釋
auto_increment是用于主鍵自動增長的,從1開始增長,當(dāng)你把第一條記錄刪除時,再插入第二條數(shù)據(jù)時,主鍵值是2,不是1。
例如:
create table test ( id int(10) not null auto_increment, – 表示自增列 name varchar(20) not null, primary key(id) )
auto_increment = 1; – 表示自增起始大小-- 這樣就可以創(chuàng)建一個表test,id為自增列
– 執(zhí)行語句 insert into test (name) values (‘名字’);
– 就可以插入一行數(shù)據(jù)為: 1 ‘名字’
注意事項(xiàng)
在使用AUTO_INCREMENT時,應(yīng)注意以下幾點(diǎn):
1、AUTO_INCREMENT是數(shù)據(jù)列的一種屬性,只適用于整數(shù)類型數(shù)據(jù)列。
2、設(shè)置AUTO_INCREMENT屬性的數(shù)據(jù)列應(yīng)該是一個正數(shù)序列,所以應(yīng)該把該數(shù)據(jù)列聲明為UNSIGNED,這樣序列的編號個可增加一倍。
3、AUTO_INCREMENT數(shù)據(jù)列必須有唯一索引,以避免序號重復(fù)(即是主鍵或者主鍵的一部分)。
AUTO_INCREMENT數(shù)據(jù)列必須具備NOT NULL屬性。
4、AUTO_INCREMENT數(shù)據(jù)列序號的最大值受該列的數(shù)據(jù)類型約束,如TINYINT數(shù)據(jù)列的最大編號是127,如加上UNSIGNED,則最大為255。一旦達(dá)到上限,AUTO_INCREMENT就會失效。
5、當(dāng)進(jìn)行全表刪除時,MySQL AUTO_INCREMENT會從1重新開始編號。
這是因?yàn)檫M(jìn)行全表操作時,MySQL(和PHP搭配之最佳組合)實(shí)際是做了這樣的優(yōu)化操作:先把數(shù)據(jù)表里的所有數(shù)據(jù)和索引刪除,然后重建數(shù)據(jù)表。
如果想刪除所有的數(shù)據(jù)行又想保留序列編號信息,可這樣用一個帶where的delete命令以抑制MySQL(和PHP搭配之最佳組合)的優(yōu)化:delete from table_name where 1;
可用last_insert_id()獲取剛剛自增過的值。
說明:部分內(nèi)容來自搜索整理,目的是為了記錄總結(jié),學(xué)習(xí)使用~
總結(jié)
到此這篇關(guān)于MySQL中auto_increment有什么作用的文章就介紹到這了,更多相關(guān)MySQL中auto_increment作用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL自增鎖(Auto-Increment Lock) 的原理使用
- mysql?自增長約束(auto_increment)的使用
- MySQL自增列解析(Auto_increment)
- MySQL中使用auto_increment修改初始值和步長
- MySQL AUTO_INCREMENT 主鍵自增長的實(shí)現(xiàn)
- MySQL 序列 AUTO_INCREMENT詳解及實(shí)例代碼
- MySQL查詢和修改auto_increment的方法
- 解析mysql中的auto_increment的問題
- 怎么重置mysql的自增列AUTO_INCREMENT初時值
- MySQL 設(shè)置AUTO_INCREMENT 無效的問題解決
相關(guān)文章
MySql如何使用not in實(shí)現(xiàn)優(yōu)化
這篇文章主要介紹了MySql如何使用not in實(shí)現(xiàn)優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03MySQL數(shù)據(jù)庫CPU飆升到100%的詳細(xì)解決方案
在監(jiān)控線上數(shù)據(jù)庫的運(yùn)行是否安全、正常的過程中,cpu使用率是一個重要的指標(biāo),一旦cpu使用率飆升至90%+甚至達(dá)到100%,必然會對數(shù)據(jù)庫的正常工作產(chǎn)生影響,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫CPU飆升到100%的詳細(xì)解決方案,需要的朋友可以參考下2023-05-05mysql5.7版本因?yàn)閟ql_mode設(shè)置導(dǎo)致的問題以及解決
這篇文章主要介紹了mysql5.7版本因?yàn)閟ql_mode設(shè)置導(dǎo)致的問題以及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09