Postgresql
如何將一種類型的所有列更改為另一種類型?
假設我想將一種類型的所有列的數據類型更改為另一種類型。我將如何去做,例如將所有
bigint
s 轉換為int
s。
在 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
。