sql >> データベース >  >> RDS >> Mysql

同じマシン上で異なるMySQLデータベースの2つのテーブルを同期する方法は?

    この目的のために、トランザクションを使用できます。

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

    一方のクエリが失敗すると、もう一方のクエリは実行できなくなり、ロールバックされます。これは単なるサンプルコードです。挿入の代わりに更新を使用できます。



    1. SSMSの結果をグリッドに-CRLFはコピー/貼り付けで保存されません-より良いテクニックはありますか?

    2. PHPからJSONデータを取得し、Androidのテキストビューに表示するにはどうすればよいですか?

    3. ajax呼び出しを介してtextareaにテキストをロードします

    4. ひねりを加えたヘカトン:メモリ内TVP –パート1