2014-03-02 23 views
1

假設我有一個包含3列的CSV文件和一個包含5列的目標表格(3個與CSV列相同,另有2個) 。所有行都有相同數量的列的數據。將CSV文件導入具有不同數量列的表格,而不使用網橋/臨時表格

CSV:

id | name  | rating 
---|-----------|------- 
1 | radiohead | 10 
2 | bjork  | 9 
3 | aqua  | 2 

SQL表:

id | name  | rating | biggest_fan | next_concert 

眼下,爲了導入CSV文件,創建一個臨時表3列,然後複製導入的數據到真正的桌子。但這似乎很愚蠢,我似乎無法找到更有效的解決方案。

是否有辦法將文件直接導入到目標表中,而在表中出現的列中生成NULL /默認值而不是在文件中?

我正在尋找一個SQL/phpMyAdmin的解決方案

+0

是不是可以爲你的列定義默認值,所以當你插入沒有值時,它將被設置爲默認值? – drmariod

回答

2

不,我不認爲有一個更好的辦法。 A 不同的方式是使用文本操作程序(sed,awk,perl,python,...)在每行的末尾添加兩個逗號;即使您的列順序不匹配,phpMyAdmin也有一個用於在導入CSV時更改順序的字段。但是,它似乎仍然需要適當數量的列。不過,這或多或少比你已經在做的事情取決於你。

相關問題