我正在尝试从表中删除一列。如何检查列是否存在?
我浏览了https://www.postgresql.org/docs/9.2/static/sql-altertable.html的文档,但没有找到任何示例如何操作。
即使找到How to check if a column exists in a SQL Server table?,但它似乎并不相关。
答案 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 $$;