CHECK
kendala saat ini tidak dapat mereferensikan tabel lain. Panduan:
Saat ini,
CHECK
ekspresi tidak boleh berisi subkueri atau merujuk ke variabel selain kolom dari baris saat ini.
Salah satu caranya adalah dengan menggunakan pemicu seperti yang ditunjukkan oleh @Wolph.
Solusi bersih tanpa pemicu :tambahkan kolom yang berlebihan dan sertakan di FOREIGN KEY
kendala , yang merupakan pilihan pertama untuk menegakkan integritas referensial. Jawaban terkait di dba.SE dengan instruksi terperinci:
- Menegakkan batasan "dua meja lagi"
Opsi lainnya adalah "memalsukan" IMMUTABLE
fungsi melakukan pemeriksaan dan menggunakannya dalam CHECK
paksaan. Postgres akan mengizinkan ini, tetapi waspadai kemungkinan peringatan. Sebaiknya jadikan itu NOT VALID
paksaan. Lihat:
- Nonaktifkan semua batasan dan pemeriksaan tabel saat memulihkan dump