2017-08-17 18 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からjavaのmysqlにロードできませんか?

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExceptionを取得する:あなたは、あなたのSQL構文で エラーが発生しています。 近くで使用する権利構文については、あなたの MySQLサーバのバージョンに対応するマニュアルを確認してください「BIGINT、airline_sentiment VARCHAR、airline_sentiment_confidence DOUBLE、negativerea」行1

では、どのように私はこの問題を解決することができますか?

+0

クエリにデータ型を入れないでください。最初の場所にテーブルを作成する 'CREATE TABLE'ステートメントで使われています。 – Barmar

+0

sytaxは次のいずれかである必要があります。 [{FIELDS | COLUMNS} [{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 INT、[TIME_SPEND_COMPANY] INT、[WORK_ACCIDENT] INT、[LEFT] INT、[PROMOTION_LAST_5YEARS] INT、[売上] VARCHAR(200)、[SALARY] VARCHAR(200)、[LAST_EVALUATION] DOUBLE、[NUMBER_PROJECT] INT、[AVERAGE_MONTLY_HOURS] )) 'このクエリの権利はありませんか?私は例外を取得しています:あなたはあなたのSQL構文でエラーがあります。第1行にある[NO] INT、[SATISFACTION_LEVEL] DOUBLE、[LAST_EVALUATION] DOUBLE、[NUMBER_PROJECT] I 'の近くで使用する正しい構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください – smv

+0

MySQLは '[] '名前の周りに、それはバックティックを使います。あなたはSQL Serverと混同しています。 – Barmar

関連する問題