首頁技術(shù)文章正文

怎樣實(shí)現(xiàn)主鍵自增長約束?

更新時(shí)間:2021-12-17 來源:黑馬程序員 瀏覽量:

在 MySQL 中,當(dāng)主鍵定義為自增長后,這個(gè)主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動(dòng)賦值。每增加一條記錄,主鍵會(huì)自動(dòng)以相同的步長進(jìn)行增長。

通過給字段添加 auto_increment 屬性來實(shí)現(xiàn)主鍵自增長。

語法

字段名 數(shù)據(jù)類型 auto_increment

操作

create table t_user1( 
  id int primary key auto_increment, 
  name varchar(20) 
);

特點(diǎn)

默認(rèn)情況下,auto_increment的初始值是 1,每新增一條記錄,字段值自動(dòng)加 1。

一個(gè)表中只能有一個(gè)字段使用 auto_increment約束,且該字段必須有唯一索引,以避免序號(hào)重復(fù)(即為主鍵或主鍵的一部分)。

auto_increment約束的字段必須具備 NOT NULL 屬性。

auto_increment約束的字段只能是整數(shù)類型(TINYINT、SMALLINT、INT、BIGINT 等。

auto_increment約束字段的最大值受該字段的數(shù)據(jù)類型約束,如果達(dá)到上限,auto_increment就會(huì)失效。

指定自增字段初始值

如果第一條記錄設(shè)置了該字段的初始值,那么新增加的記錄就從這個(gè)初始值開始自增。例如,如果表中插入的第一條記錄的 id 值設(shè)置為 5,那么再插入記錄時(shí),id 值就會(huì)從 5 開始往上增加。

-- 方式1,創(chuàng)建表時(shí)指定
create table t_user2 ( 
  id int primary key auto_increment, 
  name varchar(20)
)auto_increment=100;

-- 方式2,創(chuàng)建表之后指定
create table t_user3 ( 
  id int primary key auto_increment, 
  name varchar(20)
);

alter table t_user2 auto_increment=100;

delete和truncate在刪除后自增列的變化

  • delete數(shù)據(jù)之后自動(dòng)增長從斷點(diǎn)開始

  • truncate數(shù)據(jù)之后自動(dòng)增長從默認(rèn)起始值開始


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!