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