Postgres pgAdmin 一次重命名多列

Postgres pgAdmin multiple column renames at once

是否有更好的方法将列从 footballer_id 重命名为 id. (从 table 的所有列中删除 footballer_)

ALTER TABLE public."Footballer" RENAME COLUMN "footballer_id" TO "id"
ALTER TABLE public."Footballer" RENAME COLUMN "footballer_team" TO "team"

这个稍微好一点

ALTER TABLE public."Footballer"
   RENAME COLUMN "footballer_id" to "id",
   RENAME COLUMN "footballer_team" to "team,
   ...;

您可以编写一个查询来获取列名,然后格式化并运行一个使用结果的命令。它使用 psql \gexec 参数。

SELECT format('ALTER TABLE footballer RENAME COLUMN %I to %I', column_name, substring(column_name,length('footballer_')+1))
FROM information_schema.columns
WHERE table_schema = 'public'
  AND table_name   = 'footballer'
  AND column_name like 'footballer_%';\gexec