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.