表中有两列:
-对于一行,所有两列都需要填充。
-在col1中,任何id都是允许的。
-在col2中,一个特定的id once set只允许在第一次设置时与col1中的id一起出现在更多的行中。
例子:
col1 | col2
------|------
1 | 1 OK
1 | 1 OK
1 | 2 OK
2 | 3 OK
2 | 1 NOK because 1 in col2 is already associated with 1 in col1.
1 | 3 NOK because 3 in col2 is already associated with 2 in col1.
我想将此规则应用于使用约束的表(无需使用第二张table)
有人能帮我吗?谢谢!
3条答案
按热度按时间gstyhher1#
由于希望每个col2值只允许一个col1值,因此需要一个col2表:
然后,您可以只向该表中添加一个count列(这样您就可以使用col1、col2和counter,而不是每个col1和col2有多行),或者使用具有约束的现有表:
n1bvdmb62#
可以使用排除约束来执行此操作。您可能希望排除col2为=但col1为<>的情况。
5anewei63#
我认为你应该修正你的数据模型。你应该有一张每张一行的table
col2
值和关联的col1
价值:您可以查找
col1
此表中的值。