• Publicidad

MYSQL-Crear un alias a una tabla de otra base de datos

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

MYSQL-Crear un alias a una tabla de otra base de datos

Notapor Lor » 2008-03-28 06:48 @325

Agradecería si me pudiesen indicar cómo en MYSQL puedo acceder desde una base de datos con una conexión abierta $dbh a actualizar datos de una tabla que se encuentra en otra base de datos, cuando todo debe formar parte de una transacción.

Código: Seleccionar todo
$dbh . . . . (abro la conexión para la base de datos I)

eval {
           inserto en $dbh (base I)

           tengo que insertar en la tabla de la base II

}


Si todo anduvo bien $dbh commit; sino, rollback.

Si no utilizo alias, podría usar dos manipuladores? $dbhI y $dbhII, pero en este caso ¿tendría que ejecutar un rollback para cada conexión? ¿No sería un peligro de incongruencia?

Bueno, si alguien me puede ayudar, estaría muy agradecida. :D
Utilizando un único manipulador, si hay rollback, me vuelve atrás.
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Publicidad

Notapor Tifa » 2008-04-14 17:00 @750

No sé si te servirá, pero ya que quieres pasar o insertar un dato en un servidor Mysql remoto y aun así quieres conectarte localmente a Mysql y de ahí pasar la info al otro remoto (vaya rollo) aquí te pongo un ejemplo simple de como yo inserté una data en un Mysql remoto, logeandome primero a mi Mysql local :roll:


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use DBI;

my $coneccion = DBI->connect('dbi:mysql:primaria','marian','123') or "$DBI::errstr";

print STDOUT "Inserte los datos que desea ingresar\n";
my $respuesta = <STDIN>;
chomp($respuesta);

eval {

my $coneccion1 = DBI->connect('dbi:mysql:viamar:faxserver','viamar','viamar') || "$DBI::errstr";
if ($coneccion1 ne "$DBI::errstr")
{
my $peticion = "INSERT INTO viamar.kuki(nombres) VALUES('$respuesta');";
$coneccion1->do($peticion);
$peticion->finish();
}
$coneccion1->disconnect();
};

$coneccion->disconnect();
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Recuerda que en esta línea:

Código: Seleccionar todo
dbi:mysql:viamar:faxserver

viamar :: es el nombre de la DB del Mysql Remoto
faxserver :: es la IP o nombre de dominio del Mysql Remoto


Ojalá esto te de una idea.
Tifa
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2007-10-27 10:41 @487


Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados