【发布时间】:2015-08-13 13:47:54
【问题描述】:
我正在尝试学习如何有效地使用 mysql。现在,我想将包含作者书目的 csv 加载到 mysql 数据库中。这是我生成数据库并尝试上传文件的代码:
USE stephenkingbooks;
DROP TABLE IF EXISTS stephenkingbooks;
CREATE TABLE stephenkingbooks
(
`id` int unsigned NOT NULL auto_increment,
`original_title` varchar(255) NOT NULL,
`spanish_title` varchar(255) NOT NULL,
`year` decimal(4) NOT NULL,
`pages` decimal(10) NOT NULL,
`in_collection` enum('Y','N') NOT NULL DEFAULT 'N',
`read` enum('Y','N') NOT NULL DEFAULT 'N',
PRIMARY KEY (id)
);
LOAD DATA LOCAL INFILE '../files/unprocessed_sking.csv'
INTO TABLE stephenkingbooks (column1, column2, column4, column3)
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;
csv 文件格式如下:
Carrie,Carrie,Terror,199,19745,"En 1976, el director de cine Brian de Palma hizo la primera película basada en la novela.7 3"
我的想法是只加载与 original_title 对应的前两个列,第二个是西班牙标题(在 mysql 和 csv 中相同),在 csv 中的 column3 之后是 pages,column4 是 @ 987654324@。
此外,对于年份列,我只想取该字段的前 4 个数字,因为我有一些参考不是年份的一部分。例如,Carrie 于 1974 年发布,但 csv 包含我不想考虑的日期中的 5。
我的问题是我无法在终端中毫无错误地获得我想要的东西......有什么建议吗?
【问题讨论】: