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(-1)を含めることができます。
ノート:
これは貧弱なテーブルデザインであることを十分に認識していますが、この時点で利用できる機能とリソースが存在しなかった10年以上前に構築された巧妙なトリックでした。このシステムは何百もの小売店を運営しているため、この時点で方法を変更して戻ると、私たちが持っていない数か月かかる可能性があります。
トリガーを使用できません。これは外部キーを使用して実行する必要があります。