merlinus 1 Denunciar post Postado Agosto 2, 2011 Saudações, tenho uma tabela que tem entre outros os seguintes campos: ID CODIGO O campo ID é unico, mas o codigo que deveria ser unico, não é. estava corrindo-os quando achei que tenho mais de 500 com o valor zero, provalvelmente vindos de uma antiga importação quando o sistema foi criado. Para corrigir esse problema sem apagalos, quero colocar em cada campo aonde conste o CODIGO=0 o valor negativo do ID. Estava pensando em desenvolver um codigo php para fazer isso, mas tem como fazer direto com instrução Mysql? Agradeço desde já. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Agosto 2, 2011 update tabela set id = (id * -1) where codigo = 0 Mas cuidados com este tipo de operação, faça um backup antes. Após corrigir o problema crie uma constrainst de UNIQUE para este campo, vai impedir novos casos. Compartilhar este post Link para o post Compartilhar em outros sites
merlinus 1 Denunciar post Postado Agosto 2, 2011 Tão simples assim??? pensei que teria que usar inner join... Deu certo com uma pequena alteração, o que eu queria era alteral o valor do codigo, então deixei assim: update tabela set codigo = (id * -1) where codigo = 0 Mas funcionou perfeitamente, estou testando no ambiente de testes e depois faço no de produção. VLW Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Agosto 2, 2011 Mas não esqueça de criar o índice único para evitar probelmas futuros. Compartilhar este post Link para o post Compartilhar em outros sites
merlinus 1 Denunciar post Postado Agosto 2, 2011 Pode deixar, já está nos planos, assim que acabar com os duplicados, vou adicionar o índice. Compartilhar este post Link para o post Compartilhar em outros sites