Mysql

MySQL Workbench:我需要根據 csv 中的值更新表中的值

  • July 25, 2020

新手問題,但我嘗試創建一個新表並將 csv 導入到該表然後更新,但我一直遇到問題,任何指導將不勝感激。

我有一個包含大約 1500 個條目的 csv 文件,其中包含一個“ID”列和一個“Unit”列。我試圖找出在我的 mySQL 工作台表中更新我的 csv 文件中唯一 ID 的“單元”的最佳方法。

CSV 文件

id_inv  unit
1,      aaa
2,      aaa
3,      aaa
5,      aaa
10,     aaa

數據庫表

id_inv       unit     ... other columns
1            bbb
2            bbb
3            bbb
4            bbb
5            bbb
6            bbb
7            bbb
8            bbb
9            bbb
10           bbb

將 CSV 文件導入臨時表,然後執行 UPDATE。例如:

DROP TEMPORARY TABLE IF EXISTS tempTable; 
CREATE TEMPORARY TABLE tempTable
(id_inv int,
unit varchar(255),
PRIMARY KEY (id_inv)
);

LOAD DATA INFILE 'C:\\PathToYour\\FileName.csv'
INTO tempTable (id_inv, unit)
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';

UPDATE DBtable t1
JOIN tempTable t2 ON t1.id_inv = t2.id_inv
SET t1.unit = t2.unit;

DROP TEMPORARY TABLE tempTable; 

當然,您可能需要對欄位和行終止符以及文件路徑使用不同的符號。此外,如果您正在使用遠端伺服器,請使用“LOAD DATA LOCAL INFILE”命令。

引用自:https://dba.stackexchange.com/questions/264512