mysql自增长主键_MySQL数据库8(九)列属性之主键、自增长
主鍵
顧名思義,主要的鍵,primary key,在一張表中,有且只有一個字段,里面的值具有唯一性
創(chuàng)建主鍵
隨表創(chuàng)建
系統(tǒng)提供了兩種增加主鍵的方式:
1、直接在需要當做主鍵的字段之后,增加primary key屬性來確定主鍵
2、在所有字段之后增加primary key選項:primary key(字段信息)
表后增加
基本語法:alter table 表名 add primary key(字段);
查看主鍵
方案1: 查看表結(jié)構(gòu)
方案2:查看表的創(chuàng)建語句
刪除主鍵
基本語法:alter table 表名 drop primary key;
復合主鍵
主鍵約束
主鍵一旦增加,那么對對應(yīng)的字段數(shù)據(jù)有要求:
1、當前字段對應(yīng)的數(shù)據(jù)不能為空。
2、當前字段對應(yīng)的數(shù)據(jù)不能有任何重復
主鍵分類
主鍵分類采用的是主鍵所對應(yīng)的字段的業(yè)務(wù)意義分類:
業(yè)務(wù)主鍵:主鍵所在的字段,具有業(yè)務(wù)意義(學生ID,課程ID)
邏輯主鍵:自然增長的整型(應(yīng)用廣泛)
自增長
自動增長:auto increment,當給定某個字段的屬性之后,該列的數(shù)據(jù)在沒有提供確定數(shù)據(jù)的時候,系統(tǒng)會根據(jù)之前已經(jīng)存在的數(shù)據(jù)進行自動增加后,填充數(shù)據(jù)
通常自動增長用于邏輯主鍵
原理
自動增長的原理:
1、在系統(tǒng)中有維護一組數(shù)據(jù),用來保存當前使用了自動增長屬性的字段,記住當前對應(yīng)的數(shù)據(jù)值,在給定一個指定的步長。
2、當用戶進行數(shù)據(jù)插入的時候,如果沒有給定值,系統(tǒng)在原始值上加上步長變成新的數(shù)據(jù)
3、自動增長的觸發(fā):給定屬性的字段沒有提供值
4、自動增長只適用于數(shù)值
使用自動增長
基本語法:在字段之后增加一個屬性 auto_increment;
插入數(shù)據(jù):觸發(fā)自動增長,不能給定具體值(可以給null)
修改自動增長
1、查看自增長:自增長一旦觸發(fā)使用后,會自動地在表選項中增加一個選項(一張表最多只能擁有一個自增長)
2、表選項可以通過修改表結(jié)構(gòu)來實現(xiàn)
基本語法:alter table 表名 auto_increment = 值;
刪除和增加自動增長
刪除自增長:就是在字段屬性之后不再保留auto_increment,當用戶修改自增長所在字段時,如果沒有看到auto_increment屬性,系統(tǒng)會自動清除該自增長。
刪除自增長:alter table my_auto modify id int;
增加自增長:alter table my_auto modify id int auto_increment;
初始設(shè)置
在系統(tǒng)中,有一組變量用來維護自增長的初始值和步長
查看:show variables like ‘a(chǎn)uto_increment%’;
修改自增長步長和初始值:
set auto_increment_increment = 值;
set auto_increment_offset = 值;
細節(jié)問題
1、一張表中只有一個自增長,:自增長會上升到表選項中。
2、如果數(shù)據(jù)插入中沒有觸發(fā)自增長(給定了數(shù)據(jù)),那么自增長不會表現(xiàn),用戶指定數(shù)據(jù)之后,自增長不參與,但是自增長默默根據(jù)當前用戶設(shè)定的值初始化下一個值。
3、自增長在修改的時候,值可以較大,但是不能比當前已有的自增長字段的值小。
總結(jié)
以上是生活随笔為你收集整理的mysql自增长主键_MySQL数据库8(九)列属性之主键、自增长的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql分组区某列最后一条_[MySQ
- 下一篇: mysql1130_解决远程连接mysq