假设我在一个表中有 3 列 - A、B 和 C。我想确保如果我在 A 列中插入一些值(比如 x),我不能插入 B 或 C 等于 x 的元组,即对于所有元组,值 x 对于列 A 应保持唯一。
请注意,对于其他一些元组,x 可以在 A 中重复。
我知道 SQL 中的 UNIQUE 子句,但这只是为了确保一个值在特定列中只出现一次。由于 Oracle 中的 CHECK 语句不允许子查询,我不知道如何实现这一点。
编辑(添加更多信息)
主键是 Employee_Number,而有问题的 3 列是 LandlineNo、MobileNo 和 VOIP。因此假设这是一个条目:
Employee_Number = 1, LandlineNo = x, MobileNo = y, VOIP = z
然后不允许另一个元组的这个条目 -
Employee_Number = 2, LandlineNo = a, MobileNo = x, VOIP = c
另一方面,这个就可以了(是的,2名员工可以拥有相同数量的相同类型)
Employee_Number = 2, LandlineNo = x, MobileNo = b, VOIP = c