Hoje precisei copiar dados de uma tabela para outra. Mas como fazer isso facilmente atraves de linha de comando? … vou dizer, mas antes vamos as premissas:
* Não quero registros repetidos, neste caso o e-mail
* Não quero todos os dados da tabela Servidor (onde vou pegar os dados).
* So quero os e-mails começados com a letra “a”.
Então, vamos a dica:
INSERT INTO tabela2 (nome, email) SELECT nome, email FROM tabela1 WHERE (email LIKE 'a%') GROUP BY email
Logico que os dados acima são fictícios, mas funciona. A explicação basica é:
1- O comando INSERT como outro qualquer na tabela2 (a que vai receber os dados)
2- Em seguida vem um SELECT normal tambem, com os campos que desejo importar na mesma ordem que eu coloquei para inserir.
3- O WHERE para a condição dos e-mails começando com a letra “a”.
4- O GROUP BY para não repetir os e-mails. Poderia usar tambem o DISTINCT ou similar, fica a critério do fregues.
Se tiver alguma duvida sobre MySQL pode perguntar, se eu souber irei responder com certeza.
74 comments
Muito obrigada :)
Seu blog é muito legal, parabéns!!!
insert into valor (total) select SUM(valor1 + valor2) FROM teste where idteste = 1;
Olá,
Como seria para copiar somente os dados de um item de uma tabela para outra?
Porque testei este comando ele joga todos os itens da tabela1 para a tabela2
Muito obrigado.
Jose, so dar o select do item que voce quer.
Ola, tenho 3 tabelas.. pedidos, produtos e estoque. gostaria de selecionar os produtos atraves de um input e inserir na tabela pedidos dentro do id do pedido os seguintes dados (produto, cod_prod, qtd_estoque) e diminuir da tabela estoque (qtd_estoque) e atualizar os itens adicionados na pagina do respectivo pedido.php?id= 1
Muito bom!
Obrigado pelo post, resolveu meu problema!
Parabens, excelente post !
Alberto, para diminuir, é so adicionar na query do MySql… nomeCampo=nomeCampo-$quantidade
por exemplo, tenho 2 tabelas…
tabela vendas com os campos descricao e valor
e a tabela finaliza vendas com os campos descricao, valor e vendedor….
ta copiando certinho descricao e valor, mas como acrescentar junto com o codigo o vendedor? tentei colocar um VALUES no final e nao vai
parabens, pela dica sempre uso isso para manutencao nas minhas tabelas… cai aqui no site por acaso, mas gostei ainda mais por voce ter assinatura como “Dourado”.. tu e de onde amigo, se for da Bahia. talvez possamos ser parentes por que minha familia toda assina dourado, so eu que nao. abraços ate+.
Robson, sou quase da Bahia, norte de Minas. Mas tenho familiares no sul da Bahia sim! :)
belo posta amigo
Estou fazendo um sistema de vendas (delphi 9/MySQL) e estou c/ um problema. Já existe dados na tb_Prod, e qdo mando incluir outro prod, atravéz de speedbutton_Novo controlado pelo action aparentemente um registro foi aberto, mas qdo começo a digitar o novo prod, é mostrado nos campos que estava em branco, os dados de um registro já gravado. No DataMod de conexao MyDac estão: uma MyQuery e uma MyTable com seus respectivos MyDataSource. Gostaria de sair desta com a sua ajuda e a de Deus principalmente. Obg ALHF.
Boa tarde gostei bastante da explicação.
Como faço para aumentar o desempenho dos meus queries no Workbanch 6.0, as minhas tabelas têm bastante dados (8.000 registos), quando faço os inner joins ela demora depois dá mensagem de erro(Lost connection. Error Id: 2013), mesmo que Limitando para poucos registos, já aumentei o DBMS em preferencias, mas nada.
Gostaria da ajuda de vocês, pois estou estudando php_mysql.
Preciso dar saída de maquinas “cad_maquinas” enviar para “movimentacao_maquinas” e gerar no id_saída. Ao retornar com a maquina fazer o retorno dela para “cad_maquinas”
( função e fazer saidas de maquinas e gerar um numero desta saida com os dados da maquina e depois fazer o retorno destas maquinas.)
Obrigado
Parabéns!
Nando, não tem mistério de fazer isso com PHP, mas vou me focar em responder dúvidas e não da soluções prontas, ok? Se quiser uma consultoria, entre em contato pelo meu e-mail, se tiver alguma duvida em especifico, manda ai que a gente responde sem problemas! :)
Gostaria de saber se é possível fazer uma cópia de uma tabela pra outra quando as duas tabelas pertencem a bancos de dados diferentes. Tentei conectar nos dois bancos e dar um insert assim:
INSERT INTO test.tartest (SELECT * FROM ibcneto_inaciobr2.tarefas)
Sendo test o banco e tartest a tabela na qual será copiada; e ibcneto_inaciobr2 o banco e tarefas a tabela de onde vêm os dados.
Mas não funcionou.
Muito ObrigadoMe ajudou Muito! kk
Era exatamente o que eu tava procurando, parabéns pelo excelente post.
Valeu, me ajudou muito que DEUS continue te abençoando dia a dia aumentando seus conhecimento para ajudar quem precisa.
Obrigado Nilson, são comentários sinceros como este que nos dá vontade de continuar sempre! valeu, fica com Deus! :)
Bom dia, tenho a seguinte situação:
tabela1, telefone_2 (estes dados que quero manter)
tabela2, telefone (está em branco)
quero copiar todos os telefones da tabela1.telefon_2 para tabela2.telefone porém cada linha tem o ID_usuario relacionado com o telefone.
Como copiar da tabela1 para a tabela2 onde os id´s são iguais?
Precisa ser so com MySQL? acho melhor vc relacionar com o PHP em vez de fazer uma query apenas.
Preciso jogar os dados de uma procedure (está em um banco – servidor x)
para um outro banco novo (servidor y).
Como faria?