sql—如果postgresql 9+中存在列,如何删除该列?

yhived7q  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(254)

我正试图从表中删除一列。如何检查列是否存在?
我查阅了https://www.postgresql.org/docs/9.2/static/sql-altertable.html,但没有找到任何例子。
甚至还发现了如何检查sql server表中是否存在列,但似乎并不相关。

bfrts1fy

bfrts1fy1#

你只需要加上 IF EXIST 给你的 DROP COLUMN 声明:

ALTER TABLE tableName
DROP COLUMN IF EXISTS columnName;
4smxwvx5

4smxwvx52#

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

相关问题