sql >> Database teknologi >  >> RDS >> Mysql

Synkroniser 2 tabeller af forskellige databaser - MySQL

Du ønsker måske at bruge kommandoerne 'SELECT ... INTO OUTFILE' og 'LOAD DATA INTO INTO TABLE'.

Edit:Uddybning...

Givet tabelstrukturerne:

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

Og nogle falske data:

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

Du ville bruge følgende kommandoer:

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

For at automatisere de to, kan du bruge et bash-script/batch-fil, der kalder mysql, der først forbinder til den lokale server ved hjælp af den første sætning og derefter til den eksterne server, der udfører den anden.

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


  1. Har du brug for hjælp til Hierarchical Mysql Query

  2. Problemer med at kommunikere mellem to docker-containere

  3. #1025 - Fejl ved omdøbning (fejlnr.:150) i mysql

  4. Find sql-poster, der indeholder lignende strenge