【问题标题】:unable to load from csv to mysql in java?无法在java中从csv加载到mysql?
【发布时间】:2017-08-17 07:20:09
【问题描述】:
   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);

当我运行上面的查询时,我得到了

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,以便在附近使用正确的语法 'BIGINT,airline_sentiment VARCHAR,airline_sentiment_confidence DOUBLE,negativerea' 在第 1 行

我该如何解决这个问题?

【问题讨论】:

标签: mysql csv


【解决方案1】:

您没有在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);

【讨论】:

  • 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' 附近使用正确的语法
  • MySQL 不在名称周围使用[],它使用反引号。您将它与 SQL-Server 混淆了。
猜你喜欢
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多