2011-07-27 50 views

回答

31

這就是說,(單柱constaint):

tableName_columnName_key 

要獲得constaint名字寫(在PSQL):

\d tableName 

或使用pg_constraint系統目錄:

SELECT conname 
FROM pg_constraint 
WHERE conrelid = 
    (SELECT oid 
    FROM pg_class 
    WHERE relname LIKE 'tableName'); 

你也可以從對象樹中的pgAdmin中獲取它。

+0

謝謝,它有幫助,但是當我用alter刪除約束時,它也刪除了索引。你不知道爲什麼嗎? –

+0

唯一約束有其自己的隱式和內部btree索引(http://www.postgresql.org/docs/current/static/ddl-constraints.html#AEN2445) –

4
SELECT conname 
FROM pg_constraint 
WHERE conrelid = 'mytable'::regclass::oid