如果在PostgreSQL 9+中存在列,如何删除列?

时间:2016-11-07 19:06:11

标签: sql postgresql

我正在尝试从表中删除一列。如何检查列是否存在?

我浏览了https://www.postgresql.org/docs/9.2/static/sql-altertable.html的文档,但没有找到任何示例如何操作。

即使找到How to check if a column exists in a SQL Server table?,但它似乎并不相关。

2 个答案:

答案 0 :(得分:50)

您只需要在IF EXIST声明中添加DROP COLUMN

ALTER TABLE tableName
DROP COLUMN IF EXISTS columnName;

答案 1 :(得分:0)

您还可以尝试使用IF EXISTS方法,该方法在我们使用迁移时效果很好

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 $$;