-
ビジネス上のニーズにより、特定のフィールドのデータ型をnumber(5)からnumber(5,2)に変更する必要があります。
データがない場合は、次のステートメントを使用します。
alter table tb_test パーマイル数 (5,2) を変更します。
ただし、データがある場合、上記の方法は使用できません。
alter table tb_test add permile_temp number(5,2)
tb_test を更新して permile_temp=permile を設定します。
テーブルドロップカラムパーマイルを変更します。
alter table test 列の名前を permile_temp から permile に変更します。
この方法では列名が変更され、フィールドの順序を増やすと行の移行が発生する可能性があり、アプリケーションに影響を与える可能性があります。
次の方法がより良い方法です
列名を変更する必要はなく、テーブルの移行も発生しませんが、テーブルを 2 回更新する必要があるという欠点があります。
データ量が大きい場合、より多くのアンドゥとリドゥが生成されるため、マシンをシャットダウンすることが前提条件となります。
ダウンタイムがない場合は、オンライン再定義を使用することもできます。
スクリプトは次のとおりです。
テーブル tb_test を変更して permile_temp 番号を追加します。
列の追加/変更
alter table tb_test 変更 PERMILE null;
更新 tb_test セット permile_temp=permile,permile=null;
専念;
alter table tb_test パーマイル数 (5,2) を変更します。
更新 tb_test セット permile=permile_temp,permile_temp=null;
専念;
テーブル tb_test を変更し、列 permile_temp を削除します。
alter table tb_test 変更 PERMILE は null ではありません。
select * from tb_test;
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/luinstein/archive/2009/12/21/5049010.aspx