web-dev-qa-db-fra.com

Comment obtenir le nom d'une contrainte unique dans postgresql?

J'ai besoin de supprimer une contrainte unique d'une table postgresql, mais je ne lui ai pas donné de nom dans le schéma. Est-ce que quelqu'un sait, comment obtenir le nom d'une telle contrainte, ou comment la supprimer?

29
Pupkov-Zadnij

C'est quelque chose comme (pour une seule colonne constaint):

tableName_columnName_key

Pour obtenir le nom de la contrainte, écrivez (en psql):

\d tableName

ou utiliser pg_constraint catalogue système:

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

Vous pouvez également l'obtenir à partir de pgAdmin dans l'arborescence des objets.

40
SELECT conname
FROM pg_constraint
WHERE conrelid = 'mytable'::regclass::oid
11
strahov