-
В связи с потребностями бизнеса мне нужно изменить тип данных определенного поля с номера (5) на номер (5,2).
Если данных нет, просто используйте следующий оператор
изменить таблицу tb_test изменить номер разрешения (5,2);
Но если у вас есть данные, вы не сможете использовать описанный выше метод.
изменить таблицу tb_test добавить номер permile_temp (5,2)
обновить tb_test set permile_temp=permile;
изменить пермилю столбца удаления таблицы;
изменить таблицу тестов, переименовать столбец permile_temp в permile;
Этот метод приведет к изменению имен столбцов, а увеличение порядка полей может привести к миграции строк, что повлияет на приложение.
Следующий метод является лучшим методом
Нет необходимости изменять имена столбцов, и миграция таблицы не произойдет, но у этого есть тот недостаток, что таблицу необходимо обновлять дважды.
Если объем данных велик, будет создано больше операций отмены и повтора, и обязательным условием является выключение машины.
Если простоя нет, вы также можете воспользоваться онлайн-переопределением.
Вот сценарий:
изменить таблицу tb_test, добавить номер permile_temp;
Добавить/изменить столбцы
изменить таблицу tb_test изменить PERMILE null;
обновить набор tb_test permile_temp=permile,permile=null;
совершить;
изменить таблицу tb_test изменить номер разрешения (5,2);
обновить набор tb_test permile=permile_temp,permile_temp=null;
совершить;
изменить таблицу tb_test, удалить столбец permile_temp;
изменить таблицу tb_test изменить PERMILE не нуль;
выберите * из tb_test;
Эта статья взята из блога CSDN. При перепечатке указывайте источник: http://blog.csdn.net/luinstein/archive/2009/12/21/5049010.aspx.