PostgreSQL不允许
ALTER TABLE t RENAME COLUMN IF EXISTS c1 TO c2
...或者诸如此类的.然而,编写修改DB struct 的脚本非常方便,无需首先判断是否已经运行,就可以再次运行.
如何编写PostgreSQL函数来实现这一点?
PostgreSQL不允许
ALTER TABLE t RENAME COLUMN IF EXISTS c1 TO c2
...或者诸如此类的.然而,编写修改DB struct 的脚本非常方便,无需首先判断是否已经运行,就可以再次运行.
如何编写PostgreSQL函数来实现这一点?
详细解释请阅读这article页.
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 $$;