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());
Boa Tarde, estou iniciando em PHP e estou com um problema…
Exemplo:
tabela entrada;
id_codigo
valor1
tabela saida;
id_codigo_saida
valor2
tabela situacao;
total
preciso fazer o total ser a subtração do valor1 – valor2
nao sei como fazer.
alguem pode me ajudar?
Se está fazendo com PHP, basta trazer os valores dos campos, subtraí-los e depois inserir na tabela nova. Simples assim.
Abraços
ótima dica, testei usando o Heidi e funcionou perfeitamente. Acredito que rodando dentro do PHPMYADMIN também funcione… mas como vou fazer isso no código PHP, pois pelo que sei posso conectar apenas em um banco de cada vez.
Me compreende?
Abraço!
Olá Carlos,
Você pode se conectar via PHP a quantos DB’s quiser ao mesmo tempo. Se você observar a função
mysql_connectdo PHP, poderá ver que o primeiro parâmetro é o servidor. Trocando este parâmetro poderá fazer a conexão.Alguns exemplos podem ser vistos em:
http://bytes.com/topic/php/answers/721490-connecting-two-mysql-tables-different-databases
Abs
Paulino
Olhei o link que me mandou e achei que iria dar certo, mas não deu não.
Quero selecionar os dados de uma tabela e passar para outra tabela, porém elas não estão na mesma base de dados, são dois bancos mysql.
tenho no meu PHP a query abaixo, sendo que a tabelaA esta em um banco chamado “dados” a tabelaB está em um banco chamado de “antigo”
$query=”INSERT INTO tabelaA (campo1, campo2, campo3…)
SELECT campo1,campo2,campo3… FROM tabelaB”
mysql_query($query, ?) // passo quais das conexões aqui a que conecta no primeiro ou no segundo banco. Qualquer uma que passo da erro.
Grato amigo
Acho que vc esqueceu de dizer os nomes dos bancos antes das tabelas.
tabelaA.bancoX
Verifique
Como faço a leitura de tres tabelas
para inserir e uma diferente
exemplo:
select produto id,( listagem de produtos)
select bem id,(aqui seria teria a opçao 0 =RMA e 1 = RMB )
setect recurso id, (0 =FAT e 1 =tesouro)
isso seria inserido em outras duas tabelas para gerar 2 relatorios distintos RMA e RMB com opçoes de FAT e Tesouro
Como faço para fazer um insert em uma tabela utilizando um valor fixo e um select?
Exemplificando, eu preciso inserir valores de duas tabelas, sendo que teria de ser um determinado valor de uma das tabelas e vários valores de outra tabela, para que ficasse assim:
Tabela X
Coluna A Coluna B
555 115
555 135
555 138
555 139
555 142
Neste caso, a tabela teria de ter a coluna A com um valor da tabela Y e este valor seria sempre igual. A coluna B receberia os dados de um campo da tabela Z de acordo com um select.
Do mesmo jeito.
INSERT INTO Tabela X (Coluna A, Coluna B)
(SELECT 555, Valor_Do_Select FROM Tabela Y)
No meu caso, uso gerenciador MySql e C#
Posso também iniciar 2 MySqlCommand e 2 MySqlConnection
um para cada banco… 1 para o INSERT e outro para o SELECT
certo?
Preciso selecionar dados de uma tabela e por na outra, nome dos campos são diferentes também… Alguma dica de como fazer isso ?! :D
Pessoal, tenho a necessidade de fazer um select que gere comando “instert into” para cada linha de select, porem que nao insira em nenhuma tabela. Que me gere somente o comando em texto.
Tenho 2 bancos de daod iguais, mas em servidores que nao tem nenhuma ligacao entre si. O objetivo é fazer o select na origem e o insert no destino.
Tem como?
Grato
Pingback: Como Importar Produtos? | Open Cart Know How
Boa noite, eu preciso de uma ajuda, estou tentando inserir o registro mas precisava gerar um id de acordo com o último registro na minha tabela é possível ?
Obrigado desde já.
Tente o uso da função LAST_INSERT_ID() que sempre traz o último ID gerado.
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
Abs
Definitely consider that which you said. Your favorite justification appeared to be at the net the simplest thing to be mindful of. I say to you, I definitely get irked while folks consider worries that they just don’t know about. You controlled to hit the nail upon the highest and also defined out the entire thing with no need side effect , other folks could take a signal. Will probably be back to get more. Thank you