我有一个名为Crew的表,就像这样
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表的一些信息。 Crew表大多是空的,只有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 |
+----+-----------+----------+----------------+------+----------+---------+
答案 0 :(得分:0)
检查这是否成功
替换为您的数据库名称
update database1.Crew cr join database2.cast_info ci on cr.id=ci.person_id set cr.MovieID = ci.movie_id
我不清楚为什么你指定role_type
表