2012-04-17 34 views
2

我有一個User表如下 表1是否可以在表中寫約束主鍵不等於column4

Id  Name  ReportingId 
== 
1  Stala  Null 
2  Coma  1 
3  Rita  1 
4  Rosy  2 

我不得不限制:

Id  Name  ReportingId 
== 
1  Stala  1 
2  Coma  2 
3  Rita  3 
4  Rosy  4 

我要限制CASE 2

Id  Name  ReportingId 
== 
1  Stala  1 
2  Coma  5 
3  Rita  3 
4  Rosy  8 

是這可能通過給表的約束?

如果任何其他簡單的方法,不應妨礙該表的表現呢?

回答

5

添加一個檢查約束,以防止在創建表後,這些值:

alter table Table1 add CONSTRAINT ck_reportingId check(ReportingId <> Id) 
+0

是否可以檢查ID約束存在於表 – 2012-04-17 11:16:38

+0

ALTER TABLE表1添加約束FK_Table1_ReportingID外鍵(ReportingId)參考文獻表1(同上)。如果要在刪除父記錄時刪除所有子引用,請將「ON DELETE CASCADE」添加到此查詢的末尾。 – Peter 2012-04-17 15:12:08