【发布时间】:2018-08-29 14:20:17
【问题描述】:
最初我有三个带有链接的表;
表C->表B->表A
CREATE TABLE TableA (
id int(15) PRIMARY KEY,
name char(25) not null
);
CREATE TABLE TableB (
id int(15),
A_id int(15) not null,
Foreign Key(A_id) references TableA(id),
);
CREATE TABLE TableC (
id int(15),
B_id int(15) not null,
Foreign Key(B_id) references TableB(id),
);
我想直接在TableC上添加TableA的外键后删除TableB;
表C -> 表A
如果我有数百个 TableC 行,如何迁移这些现有数据? 我尝试了以下查询,但由于超过 1 行而失败。 .
update TableC set A_id = ( select ta.id from TableC tc, TableB tb, TableA ta where tc.B_id=tb.id and tb.A_id=ta.id );
你能帮忙吗?
【问题讨论】:
-
今日提示:切换到现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。 -
样本数据和期望的结果会有所帮助。如果给定的
A记录有多个值怎么办?