Postgresql

如何將一種類型的所有列更改為另一種類型?

  • November 20, 2018

假設我想將一種類型的所有列的數據類型更改為另一種類型。我將如何去做,例如將所有bigints 轉換為ints。

在 psql 中,你會執行類似這樣的東西,它會輸出一堆命令。

SELECT format(
 'ALTER TABLE %I.%I.%I ALTER COLUMN %I SET DATA TYPE int;',
 table_catalog,
 table_schema,
 table_name,
 column_name
)
FROM information_schema.columns
WHERE data_type = 'bigint'
 AND table_schema NOT LIKE 'pg_%'
 AND lower(table_schema) <> 'information_schema'
 AND is_updatable = 'YES';

你可以抽查它們,如果你願意去執行它們\gexec

引用自:https://dba.stackexchange.com/questions/181992