Tôi cần phải thả một ràng buộc duy nhất từ một bảng postgresql, nhưng tôi đã không cho nó một tên trong lược đồ. Có ai biết, làm thế nào để có được tên của một hạn chế như vậy, hoặc làm thế nào để thả nó?Làm thế nào để có được tên của một ràng buộc duy nhất trong postgresql?
19
A
Trả lời
31
Đó là một cái gì đó tương tự (ví constaint cột duy nhất):
tableName_columnName_key
Để có được constaint tên ghi (trong psql):
\d tableName
hoặc sử dụng pg_constraint
hệ thống Danh mục:
SELECT conname
FROM pg_constraint
WHERE conrelid =
(SELECT oid
FROM pg_class
WHERE relname LIKE 'tableName');
Ngoài ra bạn có thể lấy nó từ pgAdmin trong cây đối tượng.
4
SELECT conname
FROM pg_constraint
WHERE conrelid = 'mytable'::regclass::oid
Cảm ơn bạn đã giúp, nhưng khi tôi loại bỏ ràng buộc với thay đổi, nó cũng làm giảm chỉ mục. Bạn không biết tại sao? –
Ràng buộc duy nhất có chỉ số btree riêng, tiềm ẩn và bên trong của nó (http://www.postgresql.org/docs/current/static/ddl-constraints.html#AEN2445) –