sql >> Base de Datos >  >> RDS >> Mysql

Sincroniza 2 tablas de diferentes bases de datos - MySQL

Es posible que desee utilizar los comandos 'SELECCIONAR... EN EL ARCHIVO DE SALIDA' y 'CARGAR EL ARCHIVO DE DATOS EN LA TABLA'.

Editar:Elaboración...

Dadas las estructuras de la tabla:

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

Y algunos datos falsos:

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

Usaría los siguientes comandos:

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

Para automatizar los dos, puede usar un script bash / archivo por lotes llamando a mysql conectándose primero al servidor local usando la primera declaración, luego al servidor remoto ejecutando la segunda.

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