-
Debido a necesidades comerciales, necesito modificar el tipo de datos de un determinado campo de número (5) a número (5,2).
Si no hay datos, simplemente use la siguiente declaración
alterar la tabla tb_test modificar el número de permiso (5,2);
Pero si tiene datos, no puede utilizar el método anterior.
modificar la tabla tb_test agregar número permile_temp (5,2)
actualizar tb_test set permile_temp=permile;
alterar el permiso de la columna de caída de la tabla;
modificar la prueba de la tabla y cambiar el nombre de la columna permile_temp a permile;
Este método hará que los nombres de las columnas cambien y aumentar el orden de los campos puede provocar una migración de filas, lo que tendrá un impacto en la aplicación.
El siguiente método es un mejor método.
No es necesario cambiar los nombres de las columnas y no se producirá ninguna migración de la tabla, pero esto tiene la desventaja de que la tabla debe actualizarse dos veces.
Si la cantidad de datos es grande, se generarán más deshacer y rehacer, y el requisito previo es apagar la máquina.
Si no hay tiempo de inactividad, también puede utilizar la redefinición en línea.
Aquí está el guión:
modificar la tabla tb_test agregar el número permile_temp;
Agregar/modificar columnas
alterar la tabla tb_test modificar PERMILE nulo;
actualizar tb_test set permile_temp=permile,permile=null;
comprometerse;
alterar la tabla tb_test modificar el número de permiso (5,2);
actualizar tb_test set permile=permile_temp,permile_temp=null;
comprometerse;
alterar la tabla tb_test soltar la columna permile_temp;
alterar la tabla tb_test modificar PERMILE no nulo;
seleccione * de tb_test;
Este artículo proviene del blog de CSDN. Indique la fuente al reimprimir: http://blog.csdn.net/luinstein/archive/2009/12/21/5049010.aspx.