需要更改架构中所有表通用的列中的数据类型

问题描述 投票:0回答:1

我需要更改架构中所有表的命名列(我们称之为“照片”)的数据类型。

例如:我有 300 个结构相同的表(当然每一行的数据除外)。 但我必须在每张桌子上将照片列中的 varchar(255) 更改为 (500)。 有没有办法不用遍历每个表并手动执行?

我尝试了在互联网上找到的所有内容。使用ChatGPT(一如既往没用)但无济于事。

database postgresql alter-table alter-column
1个回答
0
投票

一个示例,显然没有在您的实例上进行测试,因此首先在测试数据库上尝试。在

psql
中做:

BEGIN;

SELECT format('ALTER TABLE %s ALTER COLUMN photo TYPE varchar ;', pg.relname)
FROM
(
 SELECT
    relname
 FROM
    pg_class
 WHERE
    relnamespace = 'public'::regnamespace
 AND
    relkind = 'r'
) pg
\gexec

--COMMIT; or ROLLBACK; depending on outcome

relnamespace
值更改为您要更改其中的表的架构。

© www.soinside.com 2019 - 2024. All rights reserved.