-
Devido às necessidades comerciais, preciso modificar o tipo de dados de um determinado campo de número(5) para número(5,2).
Se não houver dados, basta usar a seguinte instrução
alterar tabela tb_test modificar número de permissão (5,2);
Mas se você tiver dados, não poderá usar o método acima.
alterar tabela tb_test adicionar número permile_temp (5,2)
atualizar tb_test set permile_temp=permile;
alterar permissão da coluna de eliminação da tabela;
alterar teste de tabela renomear coluna permile_temp para permile;
Este método fará com que os nomes das colunas sejam alterados e aumentar a ordem dos campos pode causar a migração de linhas, o que terá impacto no aplicativo.
O método a seguir é um método melhor
Não há necessidade de alterar os nomes das colunas e nenhuma migração de tabela ocorrerá, mas isso tem a desvantagem de que a tabela precisa ser atualizada duas vezes.
Se a quantidade de dados for grande, mais desfazer e refazer serão gerados, e o pré-requisito é desligar a máquina.
Se não houver tempo de inatividade, você também poderá usar a redefinição online.
Aqui está o roteiro:
alterar tabela tb_test adicionar número permile_temp;
Adicionar/modificar colunas
alterar tabela tb_test modificar PERMILE null;
atualizar tb_test set permile_temp=permile,permile=null;
comprometer-se;
alterar tabela tb_test modificar número de permissão (5,2);
atualizar tb_test set permile=permile_temp,permile_temp=null;
comprometer-se;
alterar tabela tb_test eliminar coluna permile_temp;
alterar tabela tb_test modificar PERMILE não nulo;
selecione * em tb_test;
Este artigo vem do blog CSDN. Indique a fonte ao reimprimir: http://blog.csdn.net/luinstein/archive/2009/12/21/5049010.aspx.