-
Karena kebutuhan bisnis, saya perlu mengubah tipe data bidang tertentu dari nomor(5) menjadi nomor(5,2).
Jika tidak ada data, gunakan saja pernyataan berikut
ubah tabel tb_test ubah nomor izin (5,2);
Namun jika Anda memiliki data, Anda tidak bisa menggunakan cara di atas.
ubah tabel tb_test tambahkan nomor permile_temp (5,2)
perbarui tb_test set permile_temp=permile;
mengubah izin kolom drop tabel;
ubah tes tabel ganti nama kolom permile_temp menjadi permile;
Cara ini akan menyebabkan nama kolom berubah, dan menambah urutan bidang dapat menyebabkan migrasi baris, yang akan berdampak pada aplikasi.
Metode berikut adalah metode yang lebih baik
Tidak perlu mengubah nama kolom dan tidak akan terjadi migrasi tabel, namun kelemahannya adalah tabel perlu diperbarui dua kali.
Jika jumlah datanya besar, lebih banyak pembatalan dan pengulangan yang akan dihasilkan, dan prasyaratnya adalah mematikan mesin.
Jika tidak ada downtime, Anda juga dapat menggunakan redefinisi online.
Ini skripnya:
ubah tabel tb_test tambahkan nomor permile_temp;
Tambahkan/ubah kolom
ubah tabel tb_test ubah PERMILE null;
perbarui tb_test set permile_temp=permile,permile=null;
melakukan;
ubah tabel tb_test ubah nomor izin (5,2);
perbarui set tb_test permile=permile_temp,permile_temp=null;
melakukan;
ubah tabel tb_test drop kolom permile_temp;
ubah tabel tb_test ubah PERMILE bukan null;
pilih * dari tb_test;
Artikel ini berasal dari blog CSDN. Harap sebutkan sumbernya saat mencetak ulang: http://blog.csdn.net/luinstein/archive/2009/12/21/5049010.aspx