web-dev-qa-db-fra.com

Comment supprimer une colonne si et seulement si elle existe dans postgres en version 9+

j'essaie de supprimer une colonne d'un tableau.

quelles pourraient être les meilleures pratiques pour vérifier si la colonne existe ou non?.

je suis passé par la documentation https://www.postgresql.org/docs/9.2/static/sql-altertable.html

Même trouvé ceci dans stackoverflow Comment vérifier si une colonne existe dans la table SQL Server , mais ne semble pas si pertinent

23
user3521432

Il vous suffit d’ajouter IF EXIST à votre déclaration DROP COLUMN:

ALTER TABLE tableName
DROP COLUMN IF EXISTS columnName;
41
user3521432

Vous pouvez également essayer via la méthode IF EXISTS, qui fonctionne parfaitement lorsque nous utilisons la migration. 

DO $$

BEGIN

    IF EXISTS(
    SELECT column_name FROM information_schema.columns WHERE table_name = tableName AND column_name = columnName)
    THEN
        ALTER TABLE tableName DROP COLUMN columnName;
    END IF;

END $$;
0
Piyush Sharma