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

Cara Menemukan Nama Batasan di PostgreSQL

Masalah:

Anda ingin menemukan nama batasan dalam tabel di PostgreSQL.

Contoh:

Kami ingin menampilkan nama-nama kendala dalam tabel student .

Solusi:

SELECT conname, contype
FROM pg_catalog.pg_constraint
JOIN pg_class t ON t.oid = c.conrelid
WHERE t.relname ='student';

Ini hasilnya:

nama samaran konteks
pemeriksaan_usia_siswa c
mahasiswa_pkey p
kunci_nomor_pribadi_siswa u
siswa_negara_id_fkey f

Diskusi:

Untuk menemukan nama kendala di PostgreSQL, gunakan tampilan pg_constraint di pg_catalog skema. Bergabunglah dengan tampilan pg_catalog.pg_constraint dengan tampilan pg_class (JOIN pg_class t ON t.oid = c.conrelid ) dan gunakan relname kolom untuk memfilter batasan berdasarkan nama tabel. Dalam contoh kami, kami memilih batasan dari tabel student (WHERE t.relname ='student' ).

Pilih kolom conname dan contype untuk melihat nama kendala bersama dengan jenis kendala. Pada kolom contype , nilai 'p' untuk primary key, 'f' untuk foreign key, 'u' untuk UNIQUE kendala, dan 'c' adalah untuk CHECK kendala.

Misalnya, Anda dapat melihat batasan bernama student_pkey untuk kunci utama di student meja. contype kolom memberitahu Anda jenis kendala, yang untuk kunci utama adalah p . conname kolom dalam tampilan ini juga memberi tahu Anda tentang tabel yang berisi batasan ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolom kueri SQL tidak ada kesalahan

  2. Kesalahan:pg_config executable tidak ditemukan saat menginstal psycopg2 di Alpine di Docker

  3. Memetakan kolom JSON PostgreSQL ke properti entitas Hibernate

  4. RoR:Tidak dapat mengubah_kolom di postgres, baik di MySQL (MySQL untuk pengembangan, Postgres di Heroku)

  5. Bagaimana cara menulis batasan mengenai jumlah baris maksimum di postgresql?