gpt4 book ai didi

mysql - 更改 FK 放置

转载 作者:行者123 更新时间:2023-11-29 01:35:54 24 4
gpt4 key购买 nike

我有table1

id  | some_field
----------------
1 | text1
2 | text2
3 | text3

table2

id  | table1_id | some_field
----------------------------
1 | 3 | lorem ipsum
2 | 1 | lorem ipsum
3 | 2 | lorem ipsum

table1.idtable2.table1_id字段之间存在一对一关系。

我需要将 FK 位置更改为 table1(意味着在 table1 中创建 table2_id 并用 table2< 的相关键填充它) 得到这样的结构:

id  | table2_id | some_field
---------------------------
1 | 2 | text1
2 | 3 | text2
3 | 1 | text3

然后删除 table1_id 字段(但它与问题无关)。

问题是,我能否使用一种常见的 SQL 语句来更新所有行并保存当前关系?

最佳答案

UPDATE statement可以从一个或多个 JOIN 编辑的表中更新行。

假设您已经在 table1 中创建了列 table2_id,您的 UPDATE 查询应该是这样的:

UPDATE table1
INNER JOIN table2 ON table1.id = table2.table1_id
SET table1.table2_id = table2.id

就是这样。它应该报告修改后的行数与 table1 中的行数相同(或者在 table2 中,它们应该具有相同的行数)。

关于mysql - 更改 FK 放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45932983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com