PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách tìm tên của một ràng buộc trong PostgreSQL

Vấn đề:

Bạn muốn tìm tên của các ràng buộc trong một bảng trong PostgreSQL.

Ví dụ:

Chúng tôi muốn hiển thị tên của các ràng buộc trong bảng student .

Giải pháp:

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

Đây là kết quả:

tên con contype
student_age_check c
student_pkey p
student_personal_number_key u
student_country_id_fkey f

Thảo luận:

Để tìm tên của một ràng buộc trong PostgreSQL, hãy sử dụng dạng xem pg_constraint trong pg_catalog lược đồ. Tham gia chế độ xem pg_catalog.pg_constraint với chế độ xem pg_class (JOIN pg_class t ON t.oid = c.conrelid ) và sử dụng relname cột để lọc các ràng buộc theo tên bảng. Trong ví dụ của chúng tôi, chúng tôi chọn các ràng buộc từ bảng student (WHERE t.relname ='student' ).

Chọn cột connamecontype để xem tên ràng buộc cùng với kiểu ràng buộc. Trong cột contype , giá trị ‘p’ dành cho khóa chính, ‘f’ dành cho khóa ngoại, ‘u’ dành cho UNIQUE ràng buộc và ‘c’ là cho CHECK ràng buộc.

Ví dụ:bạn có thể thấy ràng buộc có tên student_pkey cho khóa chính trong student bàn. contype cột cho bạn biết loại ràng buộc, cho khóa chính là p . Tên con conname trong dạng xem này cũng cho bạn biết về bảng chứa ràng buộc này.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo người dùng chỉ đọc trong PostgreSQL

  2. Sự trở lại của XFS trên Linux

  3. GROUP BY trong Postgres - không bình đẳng cho kiểu dữ liệu JSON?

  4. Làm cách nào để thay đổi kiểu dữ liệu trong PostgreSQL?

  5. Tham gia truy vấn đếm trên create_series () và truy xuất giá trị Null là '0'