請建議我如何在兩列上應用唯一鍵比較。即假設我們有兩列FK_Col1和FK_Col2,並且如果我們在兩列中插入2和6,那麼我們不應該能夠在兩列中再次插入2和6或6和2。交換兩列的唯一鍵
Plaese建議我如何做到這一點。
在此先感謝
請建議我如何在兩列上應用唯一鍵比較。即假設我們有兩列FK_Col1和FK_Col2,並且如果我們在兩列中插入2和6,那麼我們不應該能夠在兩列中再次插入2和6或6和2。交換兩列的唯一鍵
Plaese建議我如何做到這一點。
在此先感謝
在創建表
CREATE TABLE table1(
COLUMN1 INT NOT NULL,
COLUMN2 VARCHAR(50) NOT NULL,
CONSTRAINT unique_1 UNIQUE (column1, column2)
)
或
ALTER TABLE table1 ADD CONSTRAINT unique_1 UNIQUE(column1, column2)
這並不回答這個問題(現在我已經採取了適當的審視),因爲在這種情況下列的順序並不重要。 – DavidG
感謝您的回覆,雖然這並沒有解決我的問題,因爲我想要交換地使用唯一的密鑰約束,這意味着如果我們曾經分別在(FK_Key1,FK_Key2)中插入(2,6),那麼我們不應該能夠插入( 2,6)或(6,2)。 – user4365176
創建一個計算列,並在其上的唯一約束。訣竅是,我們要計算列有兩種(2),(6)
和相同價值(6),(2)
:
create table #t (a int, b int,
uq_col as (case when a>b then cast(a as varchar)+'|'+cast(b as varchar) else cast(b as varchar)+'|'+cast(a as varchar) end),
constraint uq_t__a_b unique(uq_col))
使其各式獨特的鍵 –
ALTER TABLE TestTable的 ADD CONSTRAINT uq_FK_Col1_FK_Col2 UNIQUE(列1,列2); –
複合主鍵,唯一約束或唯一索引將確保不超過一行可以具有相同的值。 –