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 conname và contype để 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.