我在数据库表中有一张带有某些医疗信息的表.我爬&每天解析它们,并将其存储在本地数据库的该表中.
假设最初有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...';