Няма единен команден подход. Очевидно можете да въведете няколко команди за RENAME
от вас самите, но позволете ми да въведа известно подобрение:) Както казах в този отговор
Във вашия случай ще бъде:
SELECT
'ALTER TABLE ' || tab_name || ' RENAME COLUMN '
|| quote_ident(column_name) || ' TO '
|| quote_ident( '_1' || column_name) || ';'
FROM (
SELECT
quote_ident(table_schema) || '.' || quote_ident(table_name) as tab_name,
column_name
FROM information_schema.columns
WHERE
table_schema = 'schema_name'
AND table_name = 'table_name'
AND column_name LIKE '\_%'
) sub;
Това ще ви даде набор от низове, които са SQL команди като:
ALTER TABLE schema_name.table_name RENAME COLUMN "_settingA" TO "_1_settingA";
ALTER TABLE schema_name.table_name RENAME COLUMN "_settingB" TO "_1_settingB";
...
Няма нужда да използвате table_schema
в WHERE
клауза, ако вашата таблица е public
схема. Също така не забравяйте да използвате функцията quote_ident()
-- прочетете оригиналния ми отговор за повече обяснение.
Редактиране:
Промених заявката си, така че сега работи за всички колони с име, започващо с долна черта _
. Тъй като долната черта е специален знак в съпоставянето на SQL шаблони, трябва да я екранираме (използвайки \
), за да го намерите наистина.