私のテーブルのフィールドの1つにNOT NULL contstraintを追加したいのですが、別のフィールドに特定の値があるときだけです。PostgreSQLのカスタム非null制約
だから私はservices
テーブルを持っている:
services:
- id
- professional_id
- is_master
私はis_master
がfalseの時はいつでもprofessional_id
はnullにすることはできませんというSQL制約を書きたいです。私は次のようなことを試しました:
CREATE TABLE "services" (
"id" text NOT NULL,
"professional_id" text REFERENCES professionals ON DELETE CASCADE ON UPDATE CASCADE,
EXCLUDE USING gist (
professional_id WITH =,
) WHERE (NOT is_master),
"is_master" boolean NOT NULL DEFAULT false,
PRIMARY KEY ("id")
);
このSQLを書く正しい方法は何ですか?
https://www.postgresql.org/docs/9.1/static/sql-createtrigger.html –
'check(is_masterとprofessional_idがnullではない)を達成するためのトリガーを作成しますか? –