列的自增屬性,一般用來設(shè)置整數(shù)列根據(jù)一定步長(zhǎng)逐步增長(zhǎng)的值,類似于其他數(shù)據(jù)庫的序列。不過這里的“序列”是基于特定一張表的。關(guān)于自增屬性的相關(guān)特性如下:

創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、營(yíng)銷網(wǎng)站、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式重慶網(wǎng)站建設(shè)公司、手機(jī)網(wǎng)站開發(fā)、微商城、網(wǎng)站托管及成都網(wǎng)站維護(hù)、WEB系統(tǒng)開發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為廣告設(shè)計(jì)行業(yè)客戶提供了網(wǎng)站設(shè)計(jì)服務(wù)。
1. 控制自增屬性性能的變量:innodb_autoinc_lock_mode
innodb_autoinc_lock_mode=0
代表傳統(tǒng)模式,也就是說,在對(duì)有自增屬性的字段插入記錄時(shí),會(huì)持續(xù)持有一個(gè)表級(jí)別的自增鎖,直到語句執(zhí)行結(jié)束為止。比如說下面兩條語句,SQL 1 在執(zhí)行期間,一直持有對(duì)表 f1 的表級(jí)自增鎖,接下來 SQL 2 執(zhí)行時(shí)鎖超時(shí)。
innodb_autoinc_lock_mode=1
代表連續(xù)模式,和傳統(tǒng)模式差不多,不同的點(diǎn)在于對(duì)于簡(jiǎn)單的插入語句,比如 SQL 2,只在分配新的 ID 過程中持有一個(gè)輕量級(jí)的互斥鎖(線程級(jí)別,而不是事務(wù)級(jí)別),而不是直到語句結(jié)束才釋放的表鎖。
代表交錯(cuò)模式。這個(gè)模式下放棄了自增表鎖,產(chǎn)生的值會(huì)不連續(xù)。不過這是性能最高的模式,多條插入語句可以并發(fā)執(zhí)行。MySQL 8.0 默認(rèn)就是交錯(cuò)模式。
那針對(duì)復(fù)制安全來說,以上三種模式,0 和 1 對(duì)語句級(jí)別安全,也就是產(chǎn)生的二進(jìn)制日志復(fù)制到任何其他機(jī)器都數(shù)據(jù)都一致;2 對(duì)于語句級(jí)別不安全;三種模式對(duì)二進(jìn)制日志格式為行的都安全。
2. 控制自增屬性的步長(zhǎng)以及偏移量
一般用在主主復(fù)制架構(gòu)或者多源復(fù)制架構(gòu)里,主動(dòng)規(guī)避主鍵沖突。
auto_increment_increment 控制步長(zhǎng)
auto_increment_offset 控制偏移量
3. 對(duì)于要立刻獲取插入值的需求
就是說要獲取一張表任何時(shí)候的最大值,應(yīng)該時(shí)刻執(zhí)行以下 SQL 3 ,而不是 SQL 2。SQL 2 里的函數(shù) last_insert_id() 只獲取上一條語句最開始的 ID,只適合簡(jiǎn)單的 INSERT。
4. 自增列溢出現(xiàn)象
自增屬性的列如果到了此列數(shù)據(jù)類型的最大值,會(huì)發(fā)生值溢出。比如變更表 f1 的自增屬性列為 tinyint。
mysql設(shè)置主鍵的代碼是PRIMARY KEY (主鍵字段)。
如:CREATE TABLE Customer (SID integer,Last_Name varchar(30),F(xiàn)irst_Name varchar(30),PRIMARY KEY (SID))。
主關(guān)鍵字(主鍵,primary key)是被挑選出來,作表的行的唯一標(biāo)識(shí)的候選關(guān)鍵字。一個(gè)表只有一個(gè)主關(guān)鍵字。主關(guān)鍵字又可以稱為主鍵。
擴(kuò)展資料:
永遠(yuǎn)也不要更新主鍵。實(shí)際上,因?yàn)橹麈I除了唯一地標(biāo)識(shí)一行之外,再?zèng)]有其他的用途了,所以也就沒有理由去對(duì)它更新。如果主鍵需要更新,則說明主鍵應(yīng)對(duì)用戶無意義的原則被違反了。
主鍵應(yīng)當(dāng)由計(jì)算機(jī)自動(dòng)生成。如果由人來對(duì)主鍵的創(chuàng)建進(jìn)行干預(yù),就會(huì)使它帶有除了唯一標(biāo)識(shí)一行以外的意義。一旦越過這個(gè)界限,就可能產(chǎn)生人為修改主鍵的動(dòng)機(jī),這樣,這種系統(tǒng)用來鏈接記錄行、管理記錄行的關(guān)鍵手段就會(huì)落入不了解數(shù)據(jù)庫設(shè)計(jì)的人的手中。
1.外鍵的作用,主要有兩個(gè):
一個(gè)是讓數(shù)據(jù)庫自己通過外鍵來保證數(shù)據(jù)的完整性和一致性
一個(gè)就是能夠增加ER圖的可讀性
2.外鍵的配置
1)先創(chuàng)建一個(gè)主表,代碼如下:
#創(chuàng)建表student,并添加各種約束
create table student
(
id int primary key , #主鍵約束
name varchar(20) , #唯一約束
age int NOT NULL, #非空約束
sex varchar(2) ,
address varchar(20) default '重慶' #默認(rèn)約束
) ;
再通過一個(gè)外鍵,創(chuàng)建一個(gè)分?jǐn)?shù)表,這樣的話,就可以方便查詢。代碼如下:
#創(chuàng)建分?jǐn)?shù)表
create table score
(
id int primary key ,
sid int ,
china int ,
history int,
english int,
constraint FK_sid foreign key(sid) references student(id) #通過外鍵創(chuàng)建鏈接
) ;
創(chuàng)建外鍵的方法有很多,其中最常見創(chuàng)建外鍵的格式是:constraint FK_*** foreign key(**) references 鏈接的外表
刪除外鍵:
alter table drop foreign key '外鍵名'.
注意:
只有在定義外鍵時(shí),用constraint 外鍵名 foreign key .... 方便進(jìn)行外鍵的刪除
主鍵是唯一標(biāo)示這一行的,就好像你的身份證號(hào)一樣,每個(gè)人只有一個(gè),也是唯一能證明你是你的東西。外鍵是別人執(zhí)行你的東西。也就是說如果一個(gè)人想和你有點(diǎn)關(guān)系怎么辦,那就要關(guān)聯(lián)起來,怎么關(guān)聯(lián)起來,就通過外鍵啊
定義主鍵和外鍵主要是為了維護(hù)關(guān)系數(shù)據(jù)庫的完整性,總結(jié)一下:
一、主鍵是能確定一條記錄的唯一標(biāo)識(shí),比如,一條記錄包括身份正號(hào),姓名,年齡。身份證號(hào)是唯一能確定你這個(gè)人的,其他都可能有重復(fù),所以,身份證號(hào)是主鍵。
外鍵用于與另一張表的關(guān)聯(lián)。是能確定另一張表記錄的字段,用于保持?jǐn)?shù)據(jù)的一致性。比如,A表中的一個(gè)字段,是B表的主鍵,那他就可以是A表的外鍵。
當(dāng)前文章:mysql主鍵怎么控制 mysql主鍵怎么設(shè)置
鏈接分享:http://chinadenli.net/article44/dohgshe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站排名、網(wǎng)站維護(hù)、定制網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)