2016-02-23 133 views
1

我在CSV文件中的行,我想導入這些列到數據庫導入CSV文件到MySQL表

Notification Identifier/State/Severity/Event Time/Probable Cause/Managed Object/Alarm Type/Additional Text 
ALARM/1347413987/Outstanding/Critical/Thu, Feb 18, 2016 04:50:22 PM/NeighborDown/5620SAM tunisiana_ns:.network.ne.5620SAM6_1 SERVICE 
service-652:192.168.161.36:routingInstance:ospf-v2:areaSite-0.0.0.0:interface-2/EquipmentAlarm/"PE9036 

每一行開始使用此「ALARM」和我的分隔符爲「/」 請幫我將這些數據導入到MySQL數據庫中。

+0

我不知道Java在哪裏發揮作用,但我認爲你甚至不需要它。嘗試使用'LOAD DATA'(你可以谷歌這個)。 –

+0

我想讓它在Java代碼中,你知道我嘗試不同的方法,我甚至沒有得到它,所以請你能幫助我嗎? –

回答

2

請參考這裏LOAD DATA INFILE的文檔.. http://dev.mysql.com/doc/refman/5.7/en/load-data.html

還有一些certail GUI工具,如SQLyog,這給直接和簡單的方法您可以使用CSV友好字符

FIELDS TERMINATED BY ',' ENCLOSED BY '' ESCAPED BY '\\' 
LINES TERMINATED BY '\n' STARTING BY '' 

將CSV文件部分或全部導入服務器上的表格中。

+0

我想使用分開的「/」,並開始與「警報」行,但是當我運行這個查詢時,我得到錯誤 –

+0

你有沒有把警報放在STARTING BY的字符中?你得到了什麼錯誤? –

+0

query =「LOAD DATA LOCAL INFILE + path + INTO TABLE alarm FIELDS TERMINATED BY'/'STARTING BY'alarm'」; –

0

當他們在評論中提出一個更好的辦法是:

String esquel = " LOAD DATA LOCAL INFILE '" + path + 
       "' INTO TABLE tableName " + 
       " FIELDS TERMINATED BY \'/\' + 
       " LINES TERMINATED BY \'\\n\'"; 
+0

'+'連接所有的字符串,所以如果你打印或調試該變量,它應該是這樣的:'LOAD DATA LOCAL INFILE'D:\\ alarm.csv'INTO TABLE alarm FIELDS TERMINATED BY'/'' – tumisma

0

我有錯誤:

ou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+' at line 1 

並且這是查詢:

query = " LOAD DATA LOCAL INFILE '" + "D:\\alarm.csv" + "' INTO TABLE alarm " +" FIELDS TERMINATED BY \'/\' + ";