更新時(shí)間:2021-12-17 來源:黑馬程序員 瀏覽量:
在 MySQL 中,當(dāng)主鍵定義為自增長(zhǎng)后,這個(gè)主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動(dòng)賦值。每增加一條記錄,主鍵會(huì)自動(dòng)以相同的步長(zhǎng)進(jìn)行增長(zhǎng)。
通過給字段添加 auto_increment 屬性來實(shí)現(xiàn)主鍵自增長(zhǎng)。
字段名 數(shù)據(jù)類型 auto_increment
create table t_user1( id int primary key auto_increment, name varchar(20) );
默認(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數(shù)據(jù)之后自動(dòng)增長(zhǎng)從斷點(diǎn)開始
truncate數(shù)據(jù)之后自動(dòng)增長(zhǎng)從默認(rèn)起始值開始