1
これは数ヶ月前のことですが、これをカバーするSOの質問が出ましたが、今は見つからないようです。PostgreSQL 9.6の特定のデータ型のテーブル内のすべてのカラムを変更してください。
基本的に、私は2つのことをしたい。
最初にいくつかのカラムが複数のカラムで作成されたnumeric(20,2)
とし、それらをすべてnumeric
に変更したいとします。この文は、1つの列に対して十分に単純です。
ALTER TABLE table_name
ALTER COLUMN code
TYPE numeric;
これを処理します。
第二には、これらの列に私はすべての末尾のゼロを削除する:
UPDATE table_name
SET code = replace(replace(code::text, '.50', '.5'), '.00', '')::numeric;
持つ難しさは、それを自動化する方法を考え出すので、私は唯一のテーブルを指定する必要があり、それはテーブルをクリーンアップします。確かにこれが可能であることを確かめてください。
数値データ型に '末尾ゼロ 'のようなものはありません... – Abelisto
' select cast(' 1234.50 'を数値として); '末尾にゼロを表示します。' select cast(cast(cast(' 1234.50 'を数値として)を倍精度として)数値として返します;;は後続のゼロを伴わずに表示されます。 –
ああ、そうだよ。正に、 '数値型 'は各値の初期精度を個別に保持することは驚きです。私にそれを指摘してくれてありがとう。 – Abelisto