Copiar linha de uma tabela para outra em BD diferenets

Duke

Power Member
Olá pessoal!

Pois é, tou com um pequeno problema. Então é assim:

Tenho uma Tabela A (T_A) numa Base de Dados A (BD_A) e uma Tabela B (T_B) numa outra Base de Dados B (BD_B) ambas no mesmo servidor e quero copiar uma linha da T_A para a T_B. Qual a maneira mais eficiente?

As BDs são MySQL e tou a programar em PHP.

Obrigado []
 
Essa solução não me serve :(. Esta operação é para ser feita quando eu der um comando via web. Fiz-me entender?

De qq das maneiras obrigado ;)
 
Podes sempre fazer duas conexoes a bases de dados difrentes... guardas a linha da primeira base de dados num array, e depois quando conectares a segunda base dados inseres a informacao que esta no array dentro da base de dados.
 
Podes sempre fazer duas conexoes a bases de dados difrentes... guardas a linha da primeira base de dados num array, e depois quando conectares a segunda base dados inseres a informacao que esta no array dentro da base de dados.

Isso era aquilo em q eu estava a pensar. A minha dúvida e daí ter criado esta thread é saber se uma vez realizada a query (SELECT) terei q guardar cada um dos campos numa variável de modo a fazer o INSERT.
 
Não sei como é no MySQL, mas penso que no SQL Server podes referir tabelas em BDs diferentes, colocando atrás do nome da tabela o nome da base de dados, ex:

Select * FROM [BDa].tabelaA inner join [DBb].tabelaB on ....
 
Pessoal, será q desta maneira é suposto dar? N sei o q meter na mysql_query() onde estão os ???.Já experimentei com $conn e $conn2 e nada. Alguma ideia?O q é q estou a fazer mal?

Código:
<?php
   
	$conn = mysql_connect('localhost', 'user', 'pass') or die(mysql_error());
	
	if(!mysql_select_db("BD_A", $conn))
		die (mysql_error());
	
	$conn2 = mysql_connect('localhost', 'user', 'pass') or die(mysql_error());
	
	if(!mysql_select_db("BD_B", $conn2))
		die (mysql_error());
	
	$query = "INSERT INTO BD_B.T_B (T_B.marca,T_B.modelo) 
                      SELECT (BD_A.MARCA,BD_A.MODELO) 
                      FROM BD_A.T_A WHERE ID='3'";
        
        mysql_query($query,???);

	mysql_close($conn);
	mysql_close($conn2);

?>
 
Back
Topo