Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Comparación de dos bbdd

Estas en el tema de Comparación de dos bbdd en el foro de Mysql en Foros del Web. Hola a tod@s, Estoy intentando hacer la comparación de dos bbdd. Lo que hago primero es sacar la estructura la primera bbdd en local de ...
  #1 (permalink)  
Antiguo 12/04/2010, 04:06
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Comparación de dos bbdd

Hola a tod@s,

Estoy intentando hacer la comparación de dos bbdd. Lo que hago primero es sacar la estructura la primera bbdd en local de esta forma:

Código PHP:
        session_start();
    
    
$seleccion $_POST['db'];
    
$_SESSION['seleccion'] = $seleccion;
    
    
$link mysql_connect("localhost","root","") or die (mysql_error());
    
    
$sql "SELECT schema_name FROM information_schema.schemata WHERE schema_name = '$seleccion'";
    
$res mysql_query($sql$link) or die (mysql_error());
    
    
$fila mysql_fetch_array($res);
        
    
$sql2 "SELECT table_name FROM information_schema.tables WHERE table_schema = '".$fila['schema_name']."'";
    
    
$res2 mysql_query($sql2$link) or die (mysql_error());
    
    
$i=0;
    
$c=0;
    while(
$fila2 mysql_fetch_array($res2)){
        
        
$array1[$c]=$fila2[0];
        
        
$sql5 "SELECT column_name, column_type FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '".$fila2['table_name']."' AND table_schema = '".$fila['schema_name']."'";
        
$res5 mysql_query($sql5,$link) or die (mysql_error());
        
        
$_SESSION['columnas'][$i] = "create table <strong>".$fila2['table_name']."</strong> (";
        
        while(
$fila5 mysql_fetch_array($res5)){

            
$_SESSION['columnas'][$i] = $_SESSION['columnas'][$i]." ".$fila5['column_name']." ".$fila5['column_type'].",";

        }
        
        
$_SESSION['columnas'][$i] = substr($_SESSION['columnas'][$i], 0, -1);
        
        
$_SESSION['columnas'][$i] = $_SESSION['columnas'][$i].");";
                
        
$i++;
        
$c++;
    }
    
    
$_SESSION['cuantos'] = $i
Y luego de la base de datos del servidor, así:

Código PHP:
$copiar $_POST['copiar'];
    
$_SESSION['copiar'] = $copiar;
    
    
$link2 mysql_connect("servidor","usuario","******")or die(mysql_error());
    
    
$sql3 "SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE '%$copiar%'";
    
$res3 mysql_query($sql3$link2) or die (mysql_error());
    
    
$j=0;
    while (
$fila3 mysql_fetch_array($res3)) {
        
        
$_SESSION['columnas2'][$j] = '<strong>'.$fila3['schema_name'].'</strong><br>';
        
        
$sql4 "SELECT table_name FROM information_schema.tables WHERE table_schema = '".$fila3['schema_name']."'";
        
$res4 mysql_query($sql4$link2) or die (mysql_error());
        
        
$c=0;
        while(
$fila4 mysql_fetch_array($res4)){
            
            
$array2[$c]=$fila4[0];
            
            
$sql6 "SELECT column_name, column_type FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '".$fila4['table_name']."' AND table_schema = '".$fila3['schema_name']."'";
            
$res6 mysql_query($sql6,$link) or die (mysql_error());
            
            
$_SESSION['columnas2'][$j] = $_SESSION['columnas2'][$j]."create table <strong>".$fila4['table_name']."</strong> (";
            
            while(
$fila6 mysql_fetch_array($res6)){
    
                
$_SESSION['columnas2'][$j] = $_SESSION['columnas2'][$j]." ".$fila6['column_name']." ".$fila6['column_type'].",";
    
            }
            
            
$_SESSION['columnas2'][$j] = substr($_SESSION['columnas2'][$j], 0, -1);
            
            
$_SESSION['columnas2'][$j] = $_SESSION['columnas2'][$j].");<br>";
                        
            
$j++;
            
$c++;
        }
        
        
$_SESSION['cuantos2'] = $j;
        
    } 
Esto también me hace bien. Ahora lo que me falta es hacer la comparación entre las dos bbdd y mostrar solo las tablas que no son iguales.


Gracias de antemano. Saludos

Etiquetas: bbdd, dos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:03.