我有一個數據庫表中的某些醫療信息表。我爬行&每天解析它們並將其存儲在我本地數據庫的表中。同步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