詳細聊聊MySQL中auto_increment有什么作用
問題來源
很多時候,MySQL語句中會出現【auto_increment】這個詞匯,大多數時候,表都是自動生成的,剛開始學習MySQL數據庫時會學習到,后來,漸漸地可能會忘記,那么這個語句的作用到底是什么意思?下面,來匯總一下:
解釋
auto_increment是用于主鍵自動增長的,從1開始增長,當你把第一條記錄刪除時,再插入第二條數據時,主鍵值是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 (‘名字’);
– 就可以插入一行數據為: 1 ‘名字’
注意事項
在使用AUTO_INCREMENT時,應注意以下幾點:
1、AUTO_INCREMENT是數據列的一種屬性,只適用于整數類型數據列。
2、設置AUTO_INCREMENT屬性的數據列應該是一個正數序列,所以應該把該數據列聲明為UNSIGNED,這樣序列的編號個可增加一倍。
3、AUTO_INCREMENT數據列必須有唯一索引,以避免序號重復(即是主鍵或者主鍵的一部分)。
AUTO_INCREMENT數據列必須具備NOT NULL屬性。
4、AUTO_INCREMENT數據列序號的最大值受該列的數據類型約束,如TINYINT數據列的最大編號是127,如加上UNSIGNED,則最大為255。一旦達到上限,AUTO_INCREMENT就會失效。
5、當進行全表刪除時,MySQL AUTO_INCREMENT會從1重新開始編號。
這是因為進行全表操作時,MySQL(和PHP搭配之最佳組合)實際是做了這樣的優(yōu)化操作:先把數據表里的所有數據和索引刪除,然后重建數據表。
如果想刪除所有的數據行又想保留序列編號信息,可這樣用一個帶where的delete命令以抑制MySQL(和PHP搭配之最佳組合)的優(yōu)化:delete from table_name where 1;
可用last_insert_id()獲取剛剛自增過的值。
說明:部分內容來自搜索整理,目的是為了記錄總結,學習使用~
總結
到此這篇關于MySQL中auto_increment有什么作用的文章就介紹到這了,更多相關MySQL中auto_increment作用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql Non-Transactional Database Only(只支持MyISAM)
按照discuz官方的建議,選的都是Non-Transactional Database Only 只支持MyISAM,其實默認都安裝也挺好2016-04-04mysql?explain中key_len的含義以及計算方法
通常在優(yōu)化SQL查詢的時候,我們都會使用explain分析SQL執(zhí)行計劃,下面這篇文章主要給大家介紹了關于mysql?explain中key_len的含義以及計算方法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-03-03MySQL 5.5.49 大內存優(yōu)化配置文件優(yōu)化詳解
最近mysql服務器升級到了MySQL 5.5.49版本,性能比mysql 5.0.**肯定效率高了不少,但mysql的默認配置文件不合理,這里是針對大內存訪問量大的機器的配置方案,需要的朋友可以參考下2016-05-05