Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

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

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Mensaje Vie Mar 28, 2008 5:48 am
Lor
Perlero Nuevo
Perlero Nuevo
Registrado: 28 Abr 2005
Mensajes: 86
Ubicación: Argentina, Santa FE
MYSQL-Crear un alias a una tabla de otra base de datos Responder citando

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:
$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 manejadores? $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. Very Happy
Utilizando un único manejador, si hay rollback, me vuelve atrás.
Mensaje Lun Abr 14, 2008 4:00 pm
Tifa
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Oct 2007
Mensajes: 11
Responder citando

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 Rolling Eyes


Perl:
#!/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();


Recuerda que en esta línea:

Código:
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.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group