mysql?自增長約束(auto_increment)的使用
1、概念
在Mysql中,當(dāng)主鍵為自增長后,這個主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動賦值。每增加一條記錄,主鍵會自動以相同的步長進(jìn)行增長。
注意:自增長約束通常與主鍵放在一起使用。
通過給字段添加auto_increment屬性來實現(xiàn)主鍵的增長。
2、語法
字段名 數(shù)據(jù)類型 primary key auto_increment
3、操作
示例:

注意:自增長約束默認(rèn)情況下主鍵的值時從1開始的。
示例;


4、特點(diǎn)
(1)默認(rèn)情況下,auto_increment的初識值是1,每新增一條記錄,字段值會自動加1
(2)一個表只能有一個字段使用auto_increment約束,且該字段必須有唯一索引,以避免序號重復(fù)(即為主鍵或主鍵的一部分)
(3)auto_increment約束的字段必須具備NOT NULL屬性。
(4)auto_increment約束的字段只能是整數(shù)類型。(TINYINT, SMALLINT, INT, BIGINT等)
(5)auto_increment約束字段的最大值受該字段的數(shù)據(jù)類型約束,如果達(dá)到上限,auto_increment就會失效。
5、指定自增字段初識值:
如果第一條記錄設(shè)置了該字段的初識值,那么新增加的記錄就會從這個初識值開始自增。例如:如果表中插入的第一條記錄的id值設(shè)置為5,那么再插入記錄時,id值就會從5開始開始往上增加。
(1)創(chuàng)建表時指定
例如:
create table t_user2( id int primary key auto_increment, name varchar(200) )auto_increment=100;
#往表t_user2中插入數(shù)據(jù)時,id值會從100開始。
示例:


(2)創(chuàng)建表之后指定
例如:
create table user( id int primary key auto_increment, name varchar(20) ); alter table user auto_increment=120;
示例;


(3)delete 和truncate在刪除后自增列的變化
1)delete數(shù)據(jù)之后,自動增長從斷電開始。即:delete刪除數(shù)據(jù)之后,自增長還是在最后一個值基礎(chǔ)上加1.
示例:
delete前:

delete后:


2)truancate數(shù)據(jù)之后,自動增長從默認(rèn)起始值開始,即:truncate刪除之后,自增長從1開始。
示例:
truncate前:

truncate后;

總結(jié):
在有起始值的情況,delete刪除數(shù)據(jù)之后自增長還是在最后一個值基礎(chǔ)上加1,而truncate刪除數(shù)據(jù)之后,自增長從1開始。
到此這篇關(guān)于mysql 自增長約束(auto_increment)的使用的文章就介紹到這了,更多相關(guān)mysql 自增長約束內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL自增鎖(Auto-Increment Lock) 的原理使用
- MySQL自增列解析(Auto_increment)
- MySQL中使用auto_increment修改初始值和步長
- MySQL AUTO_INCREMENT 主鍵自增長的實現(xiàn)
- 詳細(xì)聊聊MySQL中auto_increment有什么作用
- MySQL 序列 AUTO_INCREMENT詳解及實例代碼
- MySQL查詢和修改auto_increment的方法
- 解析mysql中的auto_increment的問題
- 怎么重置mysql的自增列AUTO_INCREMENT初時值
- MySQL 設(shè)置AUTO_INCREMENT 無效的問題解決
相關(guān)文章
MySQL配置文件my.cnf優(yōu)化詳解(mysql5.5)
這篇文章主要介紹了MySQL配置文件my.cnf優(yōu)化詳解,需要的朋友可以參考下2014-12-12
mysql安裝navicat之后,出現(xiàn)2059,Authentication plugin及本地鏈接虛擬機(jī)docker,
這篇文章主要介紹了mysql安裝navicat之后,出現(xiàn)2059,Authentication plugin及本地鏈接虛擬機(jī)docker,遠(yuǎn)程鏈接服務(wù)器,需要的朋友可以參考下2020-06-06
MySQL深入詳解delete與Truncate及drop的使用區(qū)別
對于drop、truncate和delete雖然簡單,但是真要使用或者面試時候問到還是需要有一定的總結(jié),下面這篇文章主要給大家介紹了關(guān)于mysql中drop、truncate與delete區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-07-07

