仅在存在时重命名列 [英] Rename column only if exists

查看:103
本文介绍了仅在存在时重命名列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

PostgreSQL不允许

PostgreSQL does not allow

ALTER TABLE t RENAME COLUMN IF EXISTS c1 TO c2

...或类似的东西。但是,能够编写修改DB结构的脚本非常方便,该脚本可以再次运行而无需先检查它是否已经运行。

...or anything like that. However, it's very convenient to be able to write scripts which modify DB structure which can be run again without first checking if it has already been run.

如何编写PostgreSQL的功能可以做到这一点?

How do I write a PostgreSQL function to do exactly this?

推荐答案

HI尝试此解决方案。

HI Try This Solution.

DO $$
BEGIN
  IF EXISTS(SELECT *
    FROM information_schema.columns
    WHERE table_name='your_table' and column_name='your_column')
  THEN
      ALTER TABLE "public"."your_table" RENAME COLUMN "your_column" TO "your_new_column";
  END IF;
END $$;

这篇关于仅在存在时重命名列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆