【发布时间】:2016-08-10 08:02:20
【问题描述】:
我有一张如下所示的表格:
ClientId FloorNum BedNum IsActive
11 2 212 1
12 2 214 0
12 2 214 1
13 2 215 0
13 2 215 0
13 2 215 0
13 2 215 0
13 2 215 1
12 2 215 1
如您所见,FloorNum/BedNum 组合 2/215 有两行,其中 IsActive 等于 1。这不可能发生。
另一方面,一个 FloorNum/BedNum 组合可以有许多行,其中 IsActive 等于 0。
如何向表格添加约束,以便 FloorNum/BedNum 组合只能有一行 IsActive = 1?
感谢任何帮助。
【问题讨论】:
-
我们在谈论什么样的桌子?这是 Oracle、mySql 还是什么?您希望哪组价值观独一无二?在大多数关系数据库系统中,您只需指定一组列是唯一的。如:alter table myTable 添加约束 myUniqueConstraint(FloorNum, BedNum, IsActive);
标签: sql sql-server sql-server-2008 tsql unique-constraint