PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara membuat kunci asing dengan batasan pada tabel yang direferensikan di PostgreSQL

Anda dapat menggunakan batasan CHECK untuk ini. Anda tidak dapat menempatkan kueri dalam batasan CHECK tetapi Anda dapat memanggil suatu fungsi; jadi, kami membangun fungsi sederhana yang memberi tahu kami jika pluginid adalah matriks:

create or replace function is_matrix(int) returns boolean as $$
    select exists (
        select 1
        from plugins
        where id   = $1
          and type = 'matrix'
    );
$$ language sql;

dan bungkus itu dalam batasan CHECK:

alter table matrix_params add constraint chk_is_matrix check (is_matrix(pluginid));

Kemudian:

=> insert into matrix_params values (1,1);
=> insert into matrix_params values (2,3);
ERROR:  new row for relation "matrix_params" violates check constraint "chk_is_matrix"

Dan FK menangani integritas referensial dan kaskade.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyatuan koneksi untuk aplikasi Android yang terhubung ke DB Postgresql

  2. Desain database untuk membuat tabel dengan cepat

  3. tidak dapat menyimpan 0 atau 1 sebagai boolean laravel postgresql

  4. VACUUM PostgreSQL dan ANALISIS Tips Praktik Terbaik

  5. Kesalahan 'Sertifikat yang ditandatangani sendiri' selama kueri basis data Postgres yang dihosting Heroku dari aplikasi Node.js