mysql-query是否用外部引用值更新所有行?

xtfmy6hx  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(268)

最初我有三个带有链接的表;
表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
如果我害怕表行,那么如何迁移这些现有数据?我尝试了下面的查询,但失败,原因超过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 ); 你能帮忙吗?

dxpyg8gm

dxpyg8gm1#

尝试使用直接的子查询。

UPDATE tablec
       SET a_id = (SELECT b.a_id
                          FROM tableb b
                          WHERE b.id = tablec.b_id);

相关问题