Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để đồng bộ hóa hai bảng của các cơ sở dữ liệu MySQL khác nhau trên cùng một máy?

Vì mục đích này, bạn có thể sử dụng các giao dịch.

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

Nếu một truy vấn không thành công, nó sẽ không cho phép truy vấn kia chạy và sẽ quay trở lại. Đây chỉ là mã ví dụ. Bạn có thể sử dụng cập nhật thay vì chèn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm thế nào để kích hoạt tính năng tự động kết nối lại cơ sở dữ liệu trong PHP?

  2. Tìm kiếm tên đầy đủ hoặc họ hoặc tên trong cơ sở dữ liệu MySQL với họ và tên trong các cột riêng biệt

  3. Rò rỉ bộ nhớ Java MySQL JDBC

  4. PHP:tính ngày sinh theo tuổi

  5. Dự án Laravel ERR_EMPTY_RESPONSE