我有一个名为船员表,该表是这样的复制内容
Crew(
ID int(11) NOT NULL UNIQUE, #every crew member has a unique ID associated with
MovieID INT(11) NOT NULL,
Name TEXT,
Position varchar(32), #role of the person in the movie
role_id int(11);
PRIMARY KEY (ID),
FOREIGN KEY (Worked_in) REFERENCES MOVIEDATABASE.Imdb(title)
)
和另一个表
`cast_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`person_id` int(11) NOT NULL,
`movie_id` int(11) NOT NULL,
`person_role_id` int(11) DEFAULT NULL,
`note` text,
`nr_order` int(11) DEFAULT NULL,
`role_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_pid` (`person_id`),
KEY `idx_mid` (`movie_id`),
KEY `idx_cid` (`person_role_id`),
KEY `cast_info_role_id_exists` (`role_id`)
) 我想复制cast_info中的movie_id到Crew中的MovieID以及cast_info的person_id的数据条目与Crew中的ID相对应。 Crew是数据库'Mine',而role_type表来自另一个名为'imdb'的数据库。我已经尝试使用插入忽略像这样,但它被卡住了很长时间,并没有完成执行。
insert ignore into Crew(MovieID) select C1.movie_id from imdb.cast_info as
C1,imdb.cast_info as C2,Crew where C1.role_id!=C2.role_id AND Crew.ID=C1.person_id;
这里是关于cast_type表的一些信息。船员表大部分是空的,只有填补这样的ID列我没有张贴在这里
+----+-----------+----------+----------------+------+----------+---------+
| id | person_id | movie_id | person_role_id | note | nr_order | role_id |
+----+-----------+----------+----------------+------+----------+---------+
| 1 | 1 | 1005336 | 1 | NULL | NULL | 1 |
| 2 | 2 | 2248922 | 1 | NULL | 25 | 1 |
| 3 | 2 | 2416848 | 2 | NULL | 22 | 1 |
| 4 | 3 | 1923237 | NULL | NULL | 12 | 1 |
| 5 | 4 | 1745461 | 3 | NULL | NULL | 1 |
+----+-----------+----------+----------------+------+----------+---------+
提供一些示例数据以理解Crew和cast_info之间的关系。 –
刚刚添加样本数据 – user2905978
我还是不明白你想要做什么。在你试图插入的时候,你尝试在Crew中插入一些东西,据说已经在那里。 –