我有一个数据库表中的某些医疗信息表。我爬行&每天解析它们并将其存储在我本地数据库的表中。同步2个不同数据库的表 - MySQL
假设最初有1500条记录,今天我的本地机器上又增加了100条记录。
现在,我有一台服务器,我需要推送这些记录(因此数据库是不同的)。我昨天复制了数据库。所以,服务器数据库表现在有1500个条目。我如何将新的100个条目同步到实时应用程序?
请注意,我无法从本地机器删除旧条目,否则它将被一次又一次地抓取。
我有一个数据库表中的某些医疗信息表。我爬行&每天解析它们并将其存储在我本地数据库的表中。同步2个不同数据库的表 - MySQL
假设最初有1500条记录,今天我的本地机器上又增加了100条记录。
现在,我有一台服务器,我需要推送这些记录(因此数据库是不同的)。我昨天复制了数据库。所以,服务器数据库表现在有1500个条目。我如何将新的100个条目同步到实时应用程序?
请注意,我无法从本地机器删除旧条目,否则它将被一次又一次地抓取。
您可能想要使用'SELECT ... INTO OUTFILE'和'LOAD DATA INFILE INTO TABLE'命令。
编辑:精...
鉴于表结构:
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);
要自动化二,你可以使用一个bash脚本/批处理文件调用mysql,首先使用第一条语句连接到本地服务器,然后再使用第二条语句连接到远程服务器。
mysql -e 'SELECT....';
mysql -h remote_server -e 'LOAD DATA...';
要设置服务器和本地计算机之间的复制 - 有关详细信息,请参见reference documentation。
可否请您在SQL查询详细更具体的,我怎么能自动化这个过程? – dang
这两个数据库都在同一个服务器中,并且它们在数据库A ...中已经有tbl A1,tbl A2,tbl A3 ...而在数据库B中tbl B1,tbl B2,tbl B3 – redcoder