2012-04-17 63 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