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

異なるデータベースの2つのテーブルを同期する-MySQL

    'SELECT ...INTOOUTFILE'および'LOADDATA INFILEINTOTABLE'コマンドを使用することをお勧めします。

    編集:詳細...

    テーブル構造を考えると:

    CREATE TABLE my_local_table (
        id int NOT NULL auto_increment PRIMARY KEY,
        data varchar(20),
        created_on datetime);
    
    CREATE TABLE server_table (
        id int NOT NULL auto_increment PRIMARY KEY,
        data varchar(20),
        created_on datetime,
        local_id int);
    

    そして、いくつかの偽のデータ:

    INSERT INTO my_local_table (data, created_on) VALUES ('test', now()), ('test2', now());
    

    次のコマンドを使用します:

    SELECT id, data, created_on 
        FROM my_local_table
        WHERE created_on >= '2011-08-18'
        INTO OUTFILE '/tmp/t.txt';
    
    -- (and on the server)
    LOAD DATA LOCAL INFILE '/tmp/t.txt'
        INTO TABLE server_table
        (local_id, data, created_on);
    

    2つを自動化するには、最初のステートメントを使用してローカルサーバーに接続し、次に2番目のステートメントを実行するリモートサーバーに接続するmysqlを呼び出すbashスクリプト/バッチファイルを使用できます。

    mysql -e 'SELECT....';
    mysql -h remote_server -e 'LOAD DATA...';
    


    1. T-SQLで(時間なしで)現在の日付を取得する方法

    2. HibernateでOracleDateを使用する場合の日付/時刻のJavaタイプ

    3. Oracleデータベース内のすべての関数とプロシージャのリストを取得します

    4. SQL Server:MAX(DATE)の行のみを選択します