sql >> データベース >  >> RDS >> PostgreSQL

リモートで関連するテーブルから値をチェックするためのCONSTRAINT(結合などを介して)

    CHECK 現在、制約は他のテーブルを参照できません。マニュアル:

    現在、CHECK 式にサブクエリを含めることも、現在の行の列以外の変数を参照することもできません。

    1つの方法は、@Wolphによって示されるようなトリガーを使用することです。

    クリーンなトリガーのないソリューション :冗長列を追加し、それらを FOREIGN KEYに含めます 制約 、参照整合性を適用するための最初の選択肢です。詳細な手順を含むdba.SEの関連回答:

    • 「2テーブル離れた」制約を適用する

    もう1つのオプションは、 IMMUTABLE「偽造」することです。 機能 チェックを行い、それをCHECKで使用します 制約。 Postgresはこれを許可しますが、起こりうる警告に注意してください。 NOT VALIDにするのが最善です 制約。参照:

    • ダンプの復元中にすべての制約とテーブルチェックを無効にします


    1. MariaDBでのUNIX_TIMESTAMP()のしくみ

    2. C#およびODP.NETからパッケージ内の関数を呼び出すためのコード

    3. SQLiteはPRINTF()の名前をFORMAT()に変更します

    4. データベースについて知っておくべき3つのこと