MySQL 处理 csv 文件中数据的多对多关系

MySQL handling many to many relations from data in csv file

我有一个包含以下列的 CSV 文件:

演员姓名, 地址, 城市, 电影

ActorName 列有重复条目,因为该演员曾出演多部电影。 例如。演员克林特伊斯特伍德被列为 3 次,因为电影栏目有 3 部他演过的电影。

我遇到的问题是如何创建联结 table 或关系。如果我先创建 ActorID,那么 ActorName 仍然会有重复项。如果我先创建 Movies table 并移动 Movies 列,然后从 Actor table 中删除重复项,那么我将如何将 movie 与 actor 相关联?

一个例子。将数据加载到临时 table 然后复制到工作 tables.

CREATE PROCEDURE process_data ()
BEGIN

-- load data from CSV file into temptable
LOAD DATA INFILE 'x:/folder/new_data.csv' INTO TABLE raw_data;

-- insert actor names into actor table if absent
INSERT IGNORE INTO actor (actor_name) SELECT actor_name FROM raw_data;

-- insert movie names into movie table if absent
INSERT IGNORE INTO movie (movie_name) SELECT movie_name FROM raw_data;

-- insert junction data into actor_in_movie if absent
INSERT IGNORE INTO actor_in_movie (actor_id, movie_id)
SELECT actor_id, movie_id
FROM raw_data
JOIN actor USING (actor_name)
JOIN movie USING (movie_name);

-- clear imported data
TRUNCATE raw_data;
END

DEMO fiddle