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