Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да синхронизирам две таблици с различни MySQL бази данни на една и съща машина?

За тази цел можете да използвате транзакции.

$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.";
}

Ако една заявка не успее, тя няма да позволи на другата да се изпълнява и ще се върне назад. Това е само примерен код. Можете да използвате update вместо вмъкване.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ограничение с променлива

  2. Колко време трябва да отнеме за изграждане на индекс с помощта на ALTER TABLE в MySQL?

  3. Динамичен MySQL с локални променливи

  4. Функцията ORDER BY RAND() отнема много време за изпълнение в mysql

  5. codeIgniter използва mysql_real_escape_string() вместо. проблем с връзката с базата данни