共計(jì) 1760 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
這篇文章主要介紹“mysql 如何給字段增加自增屬性”,在日常操作中,相信很多人在 mysql 如何給字段增加自增屬性問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”mysql 如何給字段增加自增屬性”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學(xué)習(xí)吧!
在 mysql 中,可以通過給字段添加“AUTO_INCREMENT”屬性來給字段增加自增屬性,語法“alter table 表名 add column 字段名 數(shù)據(jù)類型 AUTO_INCREMENT;”。
本教程操作環(huán)境:windows7 系統(tǒng)、mysql8 版本、Dell G3 電腦。
通過給字段添加 AUTO_INCREMENT 屬性來實(shí)現(xiàn)字段自增長。語法格式如下:
字段名 數(shù)據(jù)類型 AUTO_INCREMENT
默認(rèn)情況下,AUTO_INCREMENT 的初始值是 1,每新增一條記錄,字段值自動(dòng)加 1。
一個(gè)表中只能有一個(gè)字段使用 AUTO_INCREMENT 約束,且該字段必須有唯一索引,以避免序號重復(fù)(即為主鍵或主鍵的一部分)。
AUTO_INCREMENT 約束的字段必須具備 NOT NULL 屬性。
AUTO_INCREMENT 約束的字段只能是整數(shù)類型(TINYINT、SMALLINT、INT、BIGINT 等)。
AUTO_INCREMENT 約束字段的最大值受該字段的數(shù)據(jù)類型約束,如果達(dá)到上限,AUTO_INCREMENT 就會(huì)失效。
自增字段一般用于主鍵中。
當(dāng)主鍵定義為自增長后,這個(gè)主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動(dòng)賦值。每增加一條記錄,主鍵會(huì)自動(dòng)以相同的步長進(jìn)行增長。
實(shí)例:
已有的 mysql 數(shù)據(jù)表,希望增加一個(gè)自增的字段,并設(shè)置新數(shù)據(jù)的初始值。
實(shí)際上不復(fù)雜,只是做個(gè)備忘。
測試表
CREATE TABLE `t_abc` ( `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
測試數(shù)據(jù):
INSERT INTO `t_abc` (`name`)
VALUES
(mike),
(tom),
(jack
添加自增字段并設(shè)置新數(shù)據(jù)的起始值
/* 增加一個(gè)自增主鍵字段,分兩步操作 */
/* 首先增加自增字段 */
alter table t_abc add column id int auto_increment primary key;
/* 執(zhí)行完上面這一條,字段增加,但值為空 */
/* 執(zhí)行這一條,它會(huì)自動(dòng)為已存在的數(shù)據(jù)的自增字段賦初值,從 1 開始,同時(shí)將后續(xù)新增的數(shù)據(jù)從 100 開始 */
alter table t_abc auto_increment=100;
修改已有數(shù)據(jù)初始值
/* 如果希望所有的數(shù)據(jù)都從 10001 開始,我們可以這么做 */
alter table t_abc add column id int auto_increment primary key;
/* 這里沒有指定任何數(shù)值,執(zhí)行完后只為自增字段賦從 1 開始的初始值,其實(shí)隱含的設(shè)置當(dāng)前表自增字段從 1 開始 */
alter table t_abc auto_increment;
/* 將所有數(shù)據(jù)增加 10000*/
update t_abc set id=id+10000;
/* 前面的 100 我們是任意指定的,現(xiàn)在我們應(yīng)該指定數(shù)據(jù)庫中的 maxId+ 1 作為下一個(gè)數(shù)據(jù)的起始值 */
set @maxId=1;
select max(id) into @maxId from t_abc; /* 表中有 3 條數(shù)據(jù),那么 maxId 現(xiàn)在是 10003*/
select @maxId+1 from dual; /* 10004 */
alter table t_abc auto_increment=10004; /* 這里不能直接引用變量,因此手動(dòng)挪移過來 */
驗(yàn)證一下
insert into t_abc(name) values( Marry
select * from t_abc order by id desc;
到此,關(guān)于“mysql 如何給字段增加自增屬性”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!