iT邦幫忙

3

我想在從一個伺服器的MYSQL資料庫抓取部分資料後更新到另一個伺服器的MYSQL資料庫中, 要怎麼寫比較好?

  • 分享至 

  • xImage

我想在從一個MYSQL資料庫抓取部分資料後更新到另一個伺服器的MYSQL資料庫中, 要怎麼寫比較好? 是使用批次檔 還是 PHP 還是 MYSQL能直接做到?

抓取部分資料的語法如下:(A伺服器)
SELECT m.EAN13,m.u_name,m.sex,m.phone,m.email,m.address,m.activedate
FROM member AS m WHERE
DATE_FORMAT(activedate, "%Y%m%d") BETWEEN "20240101" AND "20240110"
ORDER BY m.EAN13 ASC

更新到另一台資料庫的語法如下:(B伺服器)
UPDATE VIPMF SET VIP_NAME='u_name',SEX='sex',TEL1='phone',EMAIL='email',
ADDRESS='address',CREATE_DAY='activedate',MNT_FLAG='2'
WHERE VIP_CODE = 'EAN13' ; "

以前做法都是抓取 A伺服器 資料後到 EXCEL 加工成更新語法,再到 B伺服器 做更新,
但有再想如果 MYSQL語法 可以使用解決,那每日工作排程使用批次檔去執行也能解決。
另外的想法是使用 PHP 抓取 A伺服器的資料,在迴圈中更新B伺服器的資料

看更多先前的討論...收起先前的討論...
柯柯 iT邦新手 2 級 ‧ 2024-08-09 08:29:38 檢舉
您第二個想法
PHP 寫兩個DB的conn
然後Aconn query 在連Bconn insert
jazzinfo iT邦新手 5 級 ‧ 2024-08-09 09:07:02 檢舉
如果是公司常態性工作, 建議購買管理 DB工具 比較方便, 如 Navicat For MySQL , 它可做二台 MySQL DB的遷移,定時備份, 設定排程執行等
WUcheap iT邦研究生 5 級 ‧ 2024-08-09 10:13:01 檢舉
ETL
mascot iT邦新手 5 級 ‧ 2024-08-09 10:24:09 檢舉
就在剛剛已經利用PHP+工作排程完成上述工作了,Navicat 我會去研究看看,真心感謝大家的建議!!
剛剛去看了 Navicat 線上教學,
Navicat 在自動執行中,可以從資料庫加入查詢、備份、資料傳輸、資料同步、匯入、匯出、MongoDump、MongoImport、MongoExport、MapReduce。
所以似乎不能做更新,畢竟兩個TABLE不同的欄位設計沒辦法做同步更新等等
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
MatthewWangUS
iT邦新手 3 級 ‧ 2024-08-09 09:09:49
最佳解答

FEDERATED Tables + trigger ?

mascot iT邦新手 5 級 ‧ 2024-08-09 16:40:13 檢舉

其中一台伺服器 MYSQL 版本是 5.0.27 沒支援 FEDERATED,我在測試時採用的是 MariaDB 10 是可以使用 FEDERATED 完成任務的!只是沒想到轉到正式環境時就無法使用。

0
BI_Automate
iT邦新手 4 級 ‧ 2024-08-10 14:22:42

可以使用Kettle(Pentaho Data Integration)实现,简单得很。

mascot iT邦新手 5 級 ‧ 2024-08-11 13:46:39 檢舉

感謝,我之後會花時間來學習,謝謝你的分享

0
aimagic
iT邦新手 5 級 ‧ 2024-08-11 00:29:31

有一個叫DataX的ETL工具可以解決此問題。

mascot iT邦新手 5 級 ‧ 2024-08-11 13:47:00 檢舉

感謝,我之後會花時間來學習,謝謝你的分享

我要發表回答

立即登入回答