Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Synchronisieren Sie 2 Tabellen verschiedener Datenbanken - MySQL

Sie können die Befehle 'SELECT ... INTO OUTFILE' und 'LOAD DATA INFILE INTO TABLE' verwenden.

Edit:Ausarbeitung...

Angesichts der Tabellenstrukturen:

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);

Und einige falsche Daten:

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

Sie würden die folgenden Befehle verwenden:

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);

Um die beiden zu automatisieren, können Sie ein Bash-Skript / eine Batch-Datei verwenden, die mysql aufruft und sich zuerst mit dem lokalen Server verbindet, indem die erste Anweisung verwendet wird, und dann mit dem Remote-Server, der die zweite ausführt.

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