Muitas vezes é necessário fazer um insert de dados em uma tabela trazendo resultados de outra na mesma base ou em bases diferentes. Como fazer? Simples:
INSERT INTO banco.tabela-destino (campo1, campo2, campo3...) SELECT campo1,campo2,campo3... FROM banco.tabela-origem;
Atente-se para que os campos estejam na mesma seqüência tanto na instrução INSERT quanto na instrução SELECT pois é seguida a seqüência de campos em ambas as instruções. Também não se esqueça do ponto e vírgula no final da última instrução. Imprescindível.





CODARE de parabéns! Está no meu leitor de feeds…
Só para acrescentar que o mesmo pode ser feito com UPDATE, desde que não da mesma tabela. ;)
Esta é a idéia Diogo, a sequência de INSERT e SELECT pode ser feita dentro da mesma, o que não é possível com o UPDATE.
Obrigado pela visita.
Achei muito bom o insert com select, mas como faço para habilitar o connect em dois db’s diferentes ao mesmo? Pois no meu caso preciso mover dados entre duas tabelas de bancos diferentes.
Rápido e rasteiro uhsuhsuh
Obrigado pela dica!
Silvana,
Temos dois bancos, sendo eles representados por “A” e “B”, o banco “A” será especificado na cláusula “Insert” o banco “B” na cláusula “Select”, conforme código descrito abaixo:
INSERT INTO banco_A.tabela-destino (campo1, campo2, campo3…)
SELECT campo1,campo2,campo3… FROM banco_B.tabela-origem;
sera que assim nao funciona?
INSERT INTO visitas (
`idvisitas` ,
`iddmeu` ,
`iddamigo` ,
`ddatehora` ,
`ip`
)
VALUES (
NULL , ’7′, ’90′, ’2011-03-22 08:22:39′, ’1′
)
WHERE ip !=’1′);
Não, não funciona frentis, insert não aceita WHERE clause
Olá pessoal, eu tenho uma dúvida, toda vez presciso fazer duas consultas uma para verificar se a registros, se tiver eu coloco um if no php e se caso der zero dou um insert ou dou um update. Tem com colocar tudo em uma query?
Olá
Preciso selecionar todos os dados de uma tabela e inserir todos estes dados noutra tabela, no memso banco. Só consegui inserir uma linha com os dados.
Se algúem poder me ajudar !
Obrigado,
Arilson
Seguem os códigos.
$query="SELECT limpas.* FROM limpas WHERE lrg ='$tombo_rg' ";
$resultado = mysql_query($query) or die(mysql_error());
$cont= mysql_num_rows($resultado) or die (mysql_error());
while($row = mysql_fetch_array($resultado))
{
$lrg= $row["lrg"];
$ocodata =$row["ocodata"];
$assunto =$row["assunto"];
$historico= $row["historico"];
}
$sql = "INSERT INTO tombolimpas (lrg, ocodata, assunto,historico
)
VALUES ('$lrg', '$ocodata', '$assunto', '$historico' )";
$result = mysql_query($sql) or die(mysql_error());
Boa Tarde
Utilizei a idéia do post e deu certo.
Troquei todo alquele código já postado por este:
$sql = "INSERT INTO tombolimpas (lrg, ocodata, assunto, historico) SELECT lrg, ocodata, assunto, historico FROM limpas WHERE lrg = '$tombo_rg'";
$result = mysql_query($sql) or die(mysql_error());