2017-08-17 69 views
0
String query =LOAD DATA LOCAL INFILE 'airline.csv' INTO TABLE airline_tweets1 FIELDS TERMINATED BY '`' (tweet_id BIGINT,airline_sentiment VARCHAR,airline_sentiment_confidence DOUBLE,negativereason VARCHAR,negativereason_confidence VARCHAR,airline VARCHAR,airline_sentiment_gold VARCHAR,name VARCHAR,negativereason_gold VARCHAR,retweet_count INT,text VARCHAR,tweet_coord VARCHAR,tweet_created VARCHAR,tweet_location VARCHAR,user_timezone VARCHAR); 

    stmt.executeUpdate(query); 

當我運行上面的查詢,我得到無法從CSV加載到MySQL在Java?

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您在您的SQL語法錯誤 ;檢查對應於您 MySQL服務器版本正確的語法附近 使用手冊「BIGINT,airline_sentiment VARCHAR,airline_sentiment_confidence DOUBLE,negativerea」在行1

我怎麼能解決這個問題?

+0

你不把數據類型的查詢。他們只是在擺在首位創建表的CREATE'聲明TABLE'使用。 – Barmar

+0

的語法時才必須是: [{FIELDS | COLUMNS} not [{FIELDS | TYPE}請參閱https://dev.mysql.com/doc/refman/5.7/en/load-data.html – Jens

回答

0

你不列出在LOAD DATA查詢中列的數據類型。用CREATE TABLE查詢創建表的時候他們只是在使用。

String query =LOAD DATA LOCAL INFILE 'airline.csv' INTO TABLE airline_tweets1 FIELDS TERMINATED BY '`' (tweet_id, airline_sentiment, airline_sentiment_confidence, negativereason, negativereason_confidence, airline , airline_sentiment_gold, name, negativereason_gold, retweet_count, text, tweet_coord, tweet_created, tweet_location, user_timezone); 
+0

CREATE TABLE hr_analytics([NO] INT,[SATISFACTION_LEVEL] DOUBLE ,[LAST_EVALUATION] DOUBLE,[NUMBER_PROJECT] INT,[AVERAGE_MONTLY_HOURS] INT,[TIME_SPEND_COMPANY] INT,[WORK_ACCIDENT] INT,[LEFT] INT,[PROMOTION_LAST_5YEARS] INT,[SALES] VARCHAR(200),[SALARY] VARCHAR(200 ))'這個查詢不是正確的?我收到異常:你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行'[NO] INT,[SATISFACTION_LEVEL] DOUBLE,[LAST_EVALUATION] DOUBLE,[NUMBER_PROJECT] I'附近使用正確的語法 – smv

+0

MySQL不使用'[] '圍繞着名字,它使用反引號。你將它與SQL-Server混淆。 – Barmar