Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite
Gostaria de uma ajuda. Eu tenho uma tabela em que preciso inserir o resultado de um select em um campo, já existente, desta mesma tabela.
- O nome da tabela é projeto.
= Eu tenho os campos na tabela: Id_servidor, Matricula e Senha.
- Antes de realizar a inserção eu preciso fazer uma concatenação do Id_servidor com o campo Matricula truncado, que é o seguinte comando: (SELECT CONCAT(s.Id_servidor, substring(s.Matricula, 1, 3)) FROM projeto s;)
- E agora preciso inserir o resultado do select descrito acima no campo Senha da mesma tabela chamada projeto.
Como consigo fazer isso?
Obrigado desde já.Muito obrigado, funcionou perfeitamente.
>
54 minutos atrás, kim.y disse:
Tente assim
UPDATE projeto p1
INNER JOIN (SELECT CONCAT(Id_servidor, substring(Matricula, 1, 3)) as nova_senha,Id_servidor FROM projeto) x1
ON p1.Id_servidor = x1.Id_servidor
SET p1.senha = x1.nova_senha
Funcionou perfeitamente.
Mas ultima pergunta,.
Será que este comando ficará pesado (não otimizado) para uma tabela com 700.000 registros?
>
27 minutos atrás, Marcelo Pereira da Costa disse:
Funcionou perfeitamente.
Mas ultima pergunta,.
Será que este comando ficará pesado (não otimizado) para uma tabela com 700.000 registros?
Pra você não ter que dar update em todos os registros sempre que inserir um registro novo você pode usar o where nesse update ou você pode criar uma procedure.
Eu não entendo muito bem essa parte de otimização, mas por usar subselect acredito que ficará lento.>
2 minutos atrás, kim.y disse:
Pra você não ter que dar update em todos os registros sempre que inserir um registro novo você pode usar o where nesse update ou você pode criar uma procedure.
Eu não entendo muito bem essa parte de otimização, mas por usar subselect acredito que ficará lento.
Muito obrigado pela resposta, farei alguns testes para ver a velocidade.
Eu terei que fazer este UPDATE em todos os registros, porque será um campo de uma chave primaria, porque existem campos que podem ser idênticos, o que irá comprometer as buscas de informações na tabela.
Tente assim
ON p1.Id_servidor = x1.Id_servidor SET p1.senha = x1.nova_senha