更新時間:2021-12-17 來源:黑馬程序員 瀏覽量:
在 MySQL 中,當(dāng)主鍵定義為自增長后,這個主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動賦值。每增加一條記錄,主鍵會自動以相同的步長進行增長。
通過給字段添加 auto_increment 屬性來實現(xiàn)主鍵自增長。
字段名 數(shù)據(jù)類型 auto_increment
create table t_user1( id int primary key auto_increment, name varchar(20) );
默認(rèn)情況下,auto_increment的初始值是 1,每新增一條記錄,字段值自動加 1。
一個表中只能有一個字段使用 auto_increment約束,且該字段必須有唯一索引,以避免序號重復(fù)(即為主鍵或主鍵的一部分)。
auto_increment約束的字段必須具備 NOT NULL 屬性。
auto_increment約束的字段只能是整數(shù)類型(TINYINT、SMALLINT、INT、BIGINT 等。
auto_increment約束字段的最大值受該字段的數(shù)據(jù)類型約束,如果達(dá)到上限,auto_increment就會失效。
如果第一條記錄設(shè)置了該字段的初始值,那么新增加的記錄就從這個初始值開始自增。例如,如果表中插入的第一條記錄的 id 值設(shè)置為 5,那么再插入記錄時,id
值就會從 5 開始往上增加。
-- 方式1,創(chuàng)建表時指定 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數(shù)據(jù)之后自動增長從斷點開始
truncate數(shù)據(jù)之后自動增長從默認(rèn)起始值開始