Mysql

MySQL 通過 CSV 導入和替換

  • June 28, 2017

我有一個名為items10,000 多條記錄的 MySQL 數據庫表。在這些記錄中,我只想導出item_isbn IS NULL.

SELECT * FROM Items WHERE item_isbn IS NULL生成一個包含 500 條記錄的表,數據範例如下;

+---------+------------+-----------+
| item_id | item_title | item_isbn |
+---------+------------+-----------+
| 1       | Jo         | NULL      |
+---------+------------+-----------+
| 24      | Cars       | NULL      |
+---------+------------+-----------+
| 315     | Fun        | NULL      |
+---------+------------+-----------+
| etc     | etc        | etc       |
+---------+------------+-----------+

我已將此表導出為 CSV 文件,並通過 MS Excel 使用必要的 ISBN 填充它。我現在準備將數據重新導入itens表中。

如何將這 500 條記錄重新導入items表中,同時僅覆蓋相同的 500 條記錄並保持相同的item_id.

有沒有更有效的方法來做到這一點?

我正在使用 PhpMyAdmin。

任何幫助表示讚賞。

只需刪除行where item_isbn IS NULL,然後導入更新的 CSV 文件。

導入時,您也可以禁用 auto_increment,以防您擔心會弄亂 item_id 身份。

使用新的臨時表導入這些記錄,然後根據 item_id 編寫更新查詢。這樣您的 item_id 保持不變,並且這些記錄將被更新。

UPDATE items i1 INNER JOIN temp_items i2 
ON i1.item_id = i2.item_id 
SET i1.item_title =i2.item_title AND 
i1.item_isbn= i2.item_isbn;

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