Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Samfera

[Resolvido] Adicionar um número a uma sequência mysql

Recommended Posts

PessoALL,

 

Estou tentando juntar 2 tabelas de banco de dados diferentes, porém, o campo ID, que as 2 tabelas possuem, tem registros com a mesma numeração. Gostaria da adicionar um número na sequencia do campo ID. Tipo: O campo ID tem o seguinte valor: 0001 gostaria que ficasse 9001, ou seja, o número substituiria o primriro 0 por 9 na frente de todos os registros. Dessa forma eu poderia copiar a tabela completa se duplicação de dados.

 

Desde já obrigado.

Cláudio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde amigo,

 

Porque não faz uma VIEW das duas tabelas? Já que você que juntá-las eu suponho que tenham o mesmo número de colunas e tipos de dados. Procure sobre VIEW, pois da maneira que você quer tentar acho que vai acabar ferrando com seus IDs, pois digamos que você consiga o que quer, o primeiro ID na tabela será o 9001 (nove mil e um).

 

Um sugestão, quem sabe se você postar mais detalhes sobre o que quer fazer possamos estudar ideias melhores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Id é perigoso de mudar (para dizer o mínimo) pois as tabelas dependentes tem de ser mudadas também.

 

Mas querendo mudar a síntaxe é perigosamente simples

 

update tabela set id = (9000 + id)

 

mas é preciso analisar muita coisa antes de fazer isto, é fazer um backup também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nobres DiegoAngra07 e Motta:

 

Obrigado por responder.

 

Na verdade preciso das 2 juntas. É um cadastro de clientes simples de 2 filias. Como é uma tabela simples e não existe ligações com outras tabelas, posso usar o comando que o Motta sugeriu. Só que tem um detalhe no comando mota: Seguindo sua sintaxe meu ID que é 0001 vai passar a ser 9001 ou vai ficar 90000001? Se ficar como a segunda opção vou ter problemas, pois, o tamanho do campo 4.

 

Eu queria "substituir" o primeiro número do ID por "9". Se o ID é 0008 o mesmo mudará para 9008.

 

Obrigado,

Cláudio

Compartilhar este post


Link para o post
Compartilhar em outros sites
... posso usar o comando que o Motta sugeriu. Só que tem um detalhe no comando mota: Seguindo sua sintaxe meu ID que é 0001 vai passar a ser 9001 ou vai ficar 90000001? Se ficar como a segunda opção vou ter problemas, pois, o tamanho do campo 4. ...

 

Se Id é numérico ficará 9001

Se for alfa creio que ficará 90000001 (depende de como o Mysql converte tipo, não sei).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, o comando do Motta vai funcionar da maneira que você quer. O seu campo de ID é inteiro certo? Ou seja, 0001 é a mesma coisa que 1.

 

Logo 9000 + 1 = 9001 =] E assim por diante.

 

Mas reforço o que ele disse, faça um backup pra garantir, pelo menos dessas 2 tabelas.

 

A VIEW que eu citei não te atende? Eu não mudaria ID de tabela nunca.

 

Já pensou em exportar os dados das duas tabelas e importar em uma tabela nova, sem importar os IDs?

 

Por exemplo, você terá dois arquivos com as informações das tabelas (incluindo os IDs). Depois é só você importar estes arquivos, sem os IDs, numa tabela nova. A cada registro que estará sendo importado um ID novo estará sendo gerado. Já que você disse que não possui relacionamentos com esta tabela não influiria em nada de mais.

 

Pense a respeito, ou então faça o que já planejou mesmo, estou apenas dando sugestões :D

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou seguir as dicas de vocês.

 

Os backups já foram feitos, vou exportar e importar p/ uma nova tabela e vou usar o comando que o Motta sugeriu.

 

Mais uma vez obrigado,

Cláudio

 

Motta,

 

Utilizei o seu comando e não deu certo. Me parece que ele tenta somar o valor (9) com a ID(0001). Onde (9 + id) é igual a 10 e o resultado é essa mensagem: Entrada '0010' duplicada para a chave 'PRIMARY'

 

Será que há algo errado na sintaxe?

 

Obrigado,

Cláudio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendido parceiro!

 

Achei que fosse concatenação.

 

Funcionou direitinho.

 

Agora posso pegar a tabela inteira sem problemas de duplicação de chave primária.

 

Muito obrigado mesmo.

 

Sds,

Cláudio

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.