sql >> Databasteknik >  >> RDS >> Mysql

Synkronisera 2 tabeller av olika databaser - MySQL

Du kanske vill använda kommandona "SELECT ... INTO OUTFILE" och "LOAD DATA INTO TABLE".

Edit:Utarbetning...

Med tanke på tabellstrukturerna:

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

Och några falska data:

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

Du skulle använda följande kommandon:

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

För att automatisera de två kan du använda ett bash-skript/batch-fil som anropar mysql som ansluter först till den lokala servern med den första satsen och sedan till fjärrservern som exekverar den andra.

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


  1. PostgreSQL parametriserad Order By / Limit i tabellfunktion

  2. Hur man listar tabeller i den aktuella databasen med PostgreSQL

  3. Två primärnycklar specificerade i MySQL-databasen

  4. Hur konfigurerar jag Django med pymysql som drivrutin?