Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zsynchronizować dwie tabele różnych baz danych MySQL na tej samej maszynie?

W tym celu możesz użyć transakcji.

$mysql_host                 = DB_HOST;
$mysql_username             = DB_USER;
$mysql_password             = DB_PASSWORD;
$mysql_database1            = DATABASE1;
$mysql_database2            = DATABASE2;

$mysqli = new mysqli($mysql_host, $mysql_username, $mysql_password) or die( mysql_error());

/*  Begin Transaction   */
$mysqli->autocommit(FALSE); 


/*  Insert data from db1 to db2 */
$query  =  "    INSERT INTO $mysql_database1.table1";

$a  =   $mysqli->query($query); 

$query  =  "    INSERT INTO $mysql_database1.table2
            SELECT 
                *
            FROM $mysql_database2.table2
            WHERE NOT EXISTS(SELECT * from $mysql_database1.table2)     
";
$d  =   $mysqli->query($query); 


if ($a and $b) 
{
    $mysqli->commit();      
    echo "Data synched successfully.";
} else {        

    $mysqli->rollback();        
    echo "Data failed to synch.";
}

Jeśli jedno zapytanie się nie powiedzie, drugie nie zostanie uruchomione i zostanie wycofane. To tylko przykładowy kod. Możesz użyć aktualizacji zamiast wstawiania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeksy MySQL 5.0 — unikatowe kontra nieunikalne

  2. Doktryna Symfony2 mysql IN zapytanie

  3. ZMIEŃ TABELĘ JAK

  4. Czy warto używać razem MySQL i Neo4j?

  5. Jak przechowywać znaki inne niż angielskie?