Ir para conteúdo
Fórum Script Brasil
  • 0

acrescentar valores em dados já existentes


Alex Mauricio

Pergunta

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

  • 0

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 atual

ALTER 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 certo
UPDATE minhatabela
SET tel_atual = tel_aux;
4º passo - Apagando o rastro
ALTER TABLE minhatabela
DROP COLUMN tel_aux;

Link para o comentário
Compartilhar em outros sites

  • 0

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 geral

antes de tudo por questão de segurança ponha

set autocommit=0;

start transaction;

comandos

verifique se esta tudo ok

commit;

se não rollback

pre requisito para usar isto:

veja se a sua tabela esta no engine innodb da seguinte maneira:

--na base information_schema

SELECT table_schema, table_name,

ENGINE FROM TABLES

veja 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 por samirbh
Link para o comentário
Compartilhar em outros sites

  • 0
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 geral

Você 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

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...