82

I am trying to drop a column from a table. How can I check if the column exists or not?

I went through the documentation at https://www.postgresql.org/docs/9.2/static/sql-altertable.html, but didn't find any example how to do it.

Even found How to check if a column exists in a SQL Server table?, but it does not seem relevant.

TylerH
  • 20,799
  • 66
  • 75
  • 101
user3521432
  • 2,230
  • 3
  • 13
  • 16

2 Answers2

137

You just need to add IF EXIST to your DROP COLUMN statement:

ALTER TABLE tableName
DROP COLUMN IF EXISTS columnName;
Edgar Orozco
  • 2,722
  • 29
  • 33
user3521432
  • 2,230
  • 3
  • 13
  • 16
5

You can also try via IF EXISTS Method which work great while we are using 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 $$;
Fredrik Widerberg
  • 3,068
  • 10
  • 30
  • 42
Piyush Sharma
  • 591
  • 7
  • 9