替代鍵的解釋(alternate key)

2021-09-07 06:05:23 字數 2066 閱讀 2660

sql技巧:唯一性約束

一、所謂唯一性約束(unique constraint)不過是資料表內替代鍵的另乙個名稱而已。替代鍵(alternate key)可以是資料表內不作為主鍵的其他任何列,只要該鍵對該資料表唯一即可。換句話說,在唯一列內不允許出現資料重複的現象。比方說,你可以用車輛識別 代號(vin)作為汽車(automobile)資料表的替代鍵,在汽車資料表裡,主鍵是汽車識別號(automobile identification),這是一種由系統自動生成的id。你可以在汽車表內對vin施加唯一性約束,同時再建立乙個需要vin的表。在這個新錶內 可以宣告外來鍵指向汽車表。這樣,只要汽車表內有vin輸入資料庫就會檢驗vin輸入結果。這就是保證資料庫內資料完整性的另一種有效的措施。

以下是演示唯一性約束作為外來鍵引用點的示例**:

create

table

parent

(parent_id

intnot

null, --

primary key

parent_alternate_key int

notnull, --

alternate key

parent_col1 int

null

, parent_col2

intnull

,

constraint pk_parent_id primary

key(parent_id),

constraint ak_parent_alternate_key unique

(parent_id, parent_alternate_key)

);insert parent values ( 1, 10, 150, 151);

insert parent values ( 2, 11, 122, 271);

insert parent values ( 3, 12, 192, 513);

insert parent values ( 4, 13, 112, 892);

create

table

child2

(child2_parent_id

intnot

null, --

primary key/foreign key

child2_id int

notnull, --

primary key

child2_col1 int

null

, child2_parent_alternate_key

intnot

null, --

foreign key

constraint pk_child2 primary

key(child2_parent_id, child2_id),

constraint fk_child2_parent foreign

key(child2_parent_id)

references

parent(parent_id),

constraint fk_pk_ak_child2_parent foreign

key(child2_parent_id, child2_parent_alternate_key)

references

parent(parent_id, parent_alternate_key)

);insert child2 values (1,1,34,10);

insert child2 values (4,2,34,13);

insert child2 values (2,3,34,11);

insert child2 values (1,4,34,23); --

this one will fail(因為23沒有在"10,11,12,13"中)

view code

附上表結構圖:

二、

替代鍵(alternate key)可以是資料表內不作為主鍵的其他任何列,只要該鍵對該資料表唯一即可。換句話說,在唯一列內不允許出現資料重複的現象。

HTC EVO 3D 改搜尋鍵替代電源鍵

換手機了,htc evo 3d,用了一段時間甚爽,美中不足就是電池續航能力太差,還有就是電源鍵關閉螢幕的時候覺得很不方便,於是想能不能用別的方法代替。看下面4個觸控鍵中,搜尋鍵基本不用,於是想自己寫個程式代替一下,查閱了相關資料,感覺能實現,不過思路不是很清楚。無意中查到,可以直接修改手機的鍵盤對映...

替代方法 聲母替代 遺漏的矯治方法

本節課程 言語訓練的知識與技巧 之 聲母替代 遺漏的矯治方法 本期,馬老師講解了聲母替代 遺漏有哪些常見的出錯現象及具體矯治辦法,並進行詳細分析。聲母替代 遺漏的矯治方法 言語訓練的知識與技巧 主要講述了聽障兒童不同的 階段,言語訓練的內容 技巧與側重點。從 初期家長關心的聽能問題入手,講解聽能反應...

mysql中替代 MySQL中相交的替代方法

microsoft sql server的intersect 返回由intersectoperand左側和右側的查詢返回的任何不同值 這與標準不同inner join或where exists查詢。sqlserver create table table a id int primary key,v...