【发布时间】:2016-05-06 14:18:08
【问题描述】:
我正在尝试为电影镜头 (http://grouplens.org/datasets/movielens/) 创建一个数据库。我们有电影和收视率。电影有多种类型。我把它们分成一个单独的表,因为它是一个 1:many 关系。用户与电影之间也存在多:多关系。我需要能够以多种方式查询此表。
所以我创建了:
CREATE TABLE genre (
genre_id serial NOT NULL,
genre_name char(20) DEFAULT NULL,
PRIMARY KEY (genre_id)
)
.
INSERT INTO genre VALUES
(1,'Action'),(2,'Adventure'),(3,'Animation'),(4,'Children\s'),(5,'Comedy'),(6,'Crime'),
(7,'Documentary'),(8,'Drama'),(9,'Fantasy'),(10,'Film-Noir'),(11,'Horror'),(12,'Musical'),
(13,'Mystery'),(14,'Romance'),(15,'Sci-Fi'),(16,'Thriller'),(17,'War'),(18,'Western');
.
CREATE TABLE movie (
movie_id int NOT NULL DEFAULT '0',
movie_name char(75) DEFAULT NULL,
movie_year smallint DEFAULT NULL,
PRIMARY KEY (movie_id)
);
.
CREATE TABLE moviegenre (
movie_id int NOT NULL DEFAULT '0',
genre_id tinyint NOT NULL DEFAULT '0',
PRIMARY KEY (movie_id, genre_id)
);
我不知道如何导入包含movie_id、movie_name 和movie_genre 列的movies.csv 例如,第一行是(1;Toy Story (1995);Animation|Children's|Comedy)
如果我手动插入,它应该是这样的:
INSERT INTO moviegenre VALUES (1,3),(1,4),(1,5)
因为3是动画,4是儿童,5是喜剧
如何以这种方式导入所有数据集?
【问题讨论】:
-
如何使用 COPY 上传数据?或者你编辑文本文件?
-
我使用 COPY 上传我的数据
标签: postgresql csv