【问题标题】:Syntax Error - Trying to import csv file into mysql shell语法错误 - 试图将 csv 文件导入 mysql shell
【发布时间】:2020-05-16 09:10:52
【问题描述】:

完全披露:我是 MySQL 的初学者。

我花了 8 多小时查看 mysql 文档、stackoverflow 响应和 youtube,试图弄清楚如何将简单的 .csv 文件导入 mysql shell 以练习 SQL 查询。我知道我可以在 MySQL 工作台中使用一个导入按钮,但这花了我 2015 年 12 英寸 mac 大约 1 小时来上传一个 33.65 mb 的文件。我在stackoverflow上读到mysql shell中的命令行提示符会快得多。

有问题的 .csv 文件位于此链接中:https://www.kaggle.com/PromptCloudHQ/toy-products-on-amazon

我在 mySQL shell 中输入了以下查询:

create database amazon;

use amazon;

CREATE TABLE toys (
uniq_id VARCHAR(1000),
product_name VARCHAR(1000),
manufacturer VARCHAR(1000),
price VARCHAR(1000),
number_available_in_stock VARCHAR (1000),
number_of_reviews INT,
number_of_answered_questions INT,
average_review_rating VARCHAR(1000),
amazon_category_and_sub_category VARCHAR(1000),
customers_who_bought_this_item_also_bought VARCHAR(1000),
description VARCHAR(1000),
product_information VARCHAR(1000),
product_description VARCHAR(1000),
items_customers_buy_after_viewing_this_item VARCHAR(1000),
customer_questions_and_answers VARCHAR(1000),
customer_reviews VARCHAR(1000),
sellers VARCHAR(1000)
);

LOAD DATA LOCAL INFILE ‘/Users/Dave/Desktop/amazonsample.csv’ INTO TABLE toys
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n’
IGNORE 1 LINES
(uniq_id, product_name, manufacturer, price, number_available_in_stock, number_of_reviews, number_of_answered_questions, average_review_rating, amazon_category_and_sub_category, customers_who_bought_this_item_also_bought, description, product_information, product_description, items_customers_buy_after_viewing_this_item, customer_questions_and_answers, customer_reviews, sellers)
;

ERROR 1064 (42000):您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在“/Users/Dave/Desktop/amazonsample.csv” INTO TABLE 玩具附近使用的正确语法 第 1 行的 FIELDS TERMINAT'

如果您选择回应,我真诚地要求您使用简单的语言!非常感谢

【问题讨论】:

  • 如果您是程序员,您会发现文本编辑器中的“智能引号”不是一个好主意。 ' 不是同一个字符。
  • 谢谢比尔·卡尔文和 nbk!我不知道这两个字符有什么不同
  • 在旁注中,由于您抱怨速度缓慢,因此使用VARCHAR(1000) 似乎非常浪费且效率低下。例如,请参阅此讨论:stackoverflow.com/questions/262238/…。一般来说,糟糕的设计,缺乏适当的索引是数据库性能不佳的主要原因。审查您的设计和使用的数据类型可能会产生巨大的影响。您甚至可以节省电费!

标签: mysql csv


【解决方案1】:

你的撇号都是错误的,只能用一个

喜欢

LOAD DATA LOCAL INFILE '/Users/Dave/Desktop/amazonsample.csv' INTO TABLE toys
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(uniq_id, product_name, manufacturer, price, number_available_in_stock, number_of_reviews, number_of_answered_questions, average_review_rating, amazon_category_and_sub_category, customers_who_bought_this_item_also_bought, description, product_information, product_description, items_customers_buy_after_viewing_this_item, customer_questions_and_answers, customer_reviews, sellers)
;

【讨论】:

  • 对不起,你的意思是报价单?我一直只使用单引号。任何地方都没有双引号,除非我弄错了
  • 正如比尔·卡尔文所说,'不等于'。它们是不同的字符,第一个会导致问题。复制我的代码,你会看到区别
  • 哎呀...我非常非常尴尬。我一直在使用错误的报价! “'”字符在 Codecademy 中总是可以使用的,所以我没有考虑改变它的用法。非常感谢。
  • 现在的错误是 ERROR 3948 (42000): Loading local data is disabled;这必须在客户端和服务器端都启用这是一个简单的修复吗?
  • 是的,我想是的,请参阅stackoverflow.com/a/18935786/5193536 并请接受答案
猜你喜欢
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多