如何删除列,如果它存在于PostgreSQL 9+



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

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

Even found如何检查一个列是否存在于SQL Server表?

您只需要将IF EXIST添加到DROP COLUMN语句中:

ALTER TABLE tableName
DROP COLUMN IF EXISTS columnName;

您也可以尝试通过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 $$;

最新更新