Alex Mauricio Postado Junho 2, 2009 Denunciar Share Postado Junho 2, 2009 Boa noite pessoal.É o seguinte.Tenho uma base de dados onde hoje há 103.574 registros.50% dos telefones são antigos no formato XXX-XXXX e os outros 50% estão no formato XXXX-XXXX;Com isso, tenho 2 problemas:1) na primeira situação, preciso pegar todos os telefones e adicionar o DDD 19 + o número 3 e assim ficar no formato (XX)XXXX-XXXX2) para a segunda situação preciso adicionar o DDD 19 para ficar no formato (XX)XXXX-XXXXPreciso criar um Script para automatizar isso.Obrigado Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 3, 2009 Denunciar Share Postado Junho 3, 2009 Oi, 'Alex Mauricio'Este é m processo que vai ter que ser executado em vários passos, por medida de segurança.1º passo - Criar um campo auxiliar para evitar problemas no campo atualALTER TABLE minhatabela ADD COLUMN tel_aux VARCHAR(15); O nome da tabela, o nome do campo, o tipo varchar e o tamanho co campo ficam por sua conta. 2º passo - Carregando os dados:UPDATE minhatabela SET tel_aux = CONCAT("(ddd)", IF(locate("-", tel_atual) = 4, "X", ""), tel_atual); 3º passo - Colocando no lugar certoUPDATE minhatabela SET tel_atual = tel_aux; 4º passo - Apagando o rastroALTER TABLE minhatabela DROP COLUMN tel_aux; Link para o comentário Compartilhar em outros sites More sharing options...
0 samirbh Postado Junho 7, 2009 Denunciar Share Postado Junho 7, 2009 (editado) apenas complementando... ao invés de você criar um novo campo você pode trabalhar dentro de uma transação desde que você tenha firme o conceito de commit e rollback e transação em geralantes de tudo por questão de segurança ponhaset autocommit=0;start transaction;comandosverifique se esta tudo okcommit;se não rollbackpre requisito para usar isto:veja se a sua tabela esta no engine innodb da seguinte maneira:--na base information_schemaSELECT table_schema, table_name,ENGINE FROM TABLESveja se as tabelas do seu banco estão com engine innodb se sim pode fazer tranquilamente se não ai sugiro a criar um novo campo mesmo.espero ter ajudado. Editado Junho 7, 2009 por samirbh Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 8, 2009 Denunciar Share Postado Junho 8, 2009 apenas complementando... ao invés de você criar um novo campo você pode trabalhar dentro de uma transação desde que você tenha firme o conceito de commit e rollback e transação em geralVocê estará certo se souber que ele usa innodb como engine para estas tabelas. Como ele não informou, o correto é fazer o que passei. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Alex Mauricio
Boa noite pessoal.
É o seguinte.
Tenho uma base de dados onde hoje há 103.574 registros.
50% dos telefones são antigos no formato XXX-XXXX e os outros 50% estão no formato XXXX-XXXX;
Com isso, tenho 2 problemas:
1) na primeira situação, preciso pegar todos os telefones e adicionar o DDD 19 + o número 3 e assim ficar no formato (XX)XXXX-XXXX
2) para a segunda situação preciso adicionar o DDD 19 para ficar no formato (XX)XXXX-XXXX
Preciso criar um Script para automatizar isso.
Obrigado
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados