[英]Best way to load this data into MySQL
我有一個具有主鍵和四個外鍵的表。 我正在使用的所有數據都在Excel電子表格中。 我不確定將這些數據加載到數據庫中的最佳方法。
對於其他一些表,我將所需的Excel列導出為.csv文件,然后使用正則表達式將數據格式化為INSERT
語句。
我正在使用的主表如下所示:
Table 1
----------------------------------------------------
| ID | Text | category_ID | f2 |f3 |
----------------------------------------------------
| 1 | Foo | NULL | NULL |NULL |
| 2 | Bar | NULL | NULL |NULL |
----------------------------------------------------
下表是這樣的:
Table 2
-----------------------
| ID | Category |
-----------------------
| 1 | CatFoo |
| 2 | CatBar |
-----------------------
我的Excel就像這樣:
Excel
---------------------------------
| ID | Text | category |
---------------------------------
| 1 | Foo | CatFoo |
| 2 | Bar | CatFoo |
| 3 | What | CatBar |
---------------------------------
我的目標是表1中的Category_ID
字段從表2中獲取給定類別的ID號。為此,我需要從Excel中讀取類別,並放置正確的Category_ID
。 當我只有Excel工作表中的文本數據時,我感到困惑。
有沒有一種方法可以對照Table 2
中的數據檢查文本,找到與文本匹配的ID,並相應地更新Table 1
的行?
我一直在網上搜索,但是找不到任何可以使用的東西,但是我非常適合數據庫的初學者,因此可以提供任何幫助。
您應該做的第一件事是將所有數據加載到同一數據庫中。
我假設您的CSV格式正確,可以使用mySQL的LOAD DATA INFILE函數將csv文件加載到SQL數據庫中,如果您不使用mysql,則可能會為數據庫系統找到類似的功能。
您需要首先創建約束數據的表結構,然后再使用查詢加載數據(不用擔心,如果您不知道mysql引擎的默認路徑,mySQL將在錯誤消息中將其提供給您)
將數據輸入文件'path / YourCSVFILE.csv'加載到表中字段以''''終止
請參閱下面的完整文檔(針對您自己的csv格式進行調整) http://dev.mysql.com/doc/refman/5.1/en/load-data.html
因此,在嘗試了復雜的UPDATE JOIN查詢並沒有成功之后,我找到了解決您的問題的解決方案。
如果您的表之間沒有牢固的鏈接,則使用所有沒有空ID類別的數據創建一個新表,並將其替換為新值應該是可行的
CREATE TABLE result SELECT table1.id,table1.text,table2.id as id_category,f1,f2FROM table1INNER JOIN excel ON excel.on = excel1.text = table1.textINNER JOIN table2 ON table2.category = excel.category
我將所有表字段的小寫形式放在我的頭上。
希望有幫助
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.