Davidが言ったように、バックアップを実行せずに本番データベースでスクリプトを実行したり、サイトを停止したりすることは最善の考えではありません. :
- 取引を開始
- 必要な最終構造を持つ新しいテーブルを作成します。
- 元のテーブルから新しいテーブルにデータをコピーします
- 古いテーブルの名前を、original_name_old などに変更します
- 新しいテーブルの名前を tooriginal_table_name に変更します
- 取引を終了
これは、元のテーブルと同じ名前が付けられたテーブルで終了しますが、必要な新しい構造があり、さらに元のテーブルをバックアップ名で維持するため、変更をロールバックする場合は、スクリプトを作成して新しいテーブルをドロップして、元のテーブルの名前を変更するだけです。
テーブルに外部キーがある場合、スクリプトはもう少し複雑になりますが、多くの作業をしなくても可能です。