在 PostgreSQL 中是否可以有条件地添加外键?
就像是:ALTER TABLE table1 ADD FOREIGN KEY (some_id) REFERENCES other_table WHERE some_id NOT IN (0,-1) AND some_id IS NOT NULL;
具体来说,我的参考表具有所有正整数 (1+),但我需要添加外键的表可以包含零 (0)、空和负一 (-1),所有这些都意味着不同的东西。
笔记:
我完全意识到这是糟糕的表格设计,但这是 10 多年前建立的一个聪明的把戏,当时我们可用的功能和资源并不存在。该系统正在运行数百家零售店,因此此时返回并更改方法可能需要几个月的时间,而我们没有。
我不能使用触发器,这必须使用外键来完成。