gpt4 book ai didi

mysql - 规范化 - 将数据迁移到另一个表

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

我有一个带有字段 json 的表模板。由于 json 对于许多 template 来说可能是相同的 (1:n),我创建了另一个表 template_json 并添加了字段 template_json_id (FK) 到模板

为了将所有数据从一个表迁移到另一个表,我使用了以下 SQL:

INSERT INTO db.template_json (`json`)
SELECT `json`
FROM db.template;

这可以完美地迁移数据,但当然会让我的 template.template_json_id 为空。我需要使用插入中的 template_json.id 更新每行的 template.template_json_id (FK)。

是否可以在一个查询中完成此操作?

最佳答案

如果您没有重复项,您可以使用内部联接并进行更新

update template
inner join template on template_json.json = template.json
set template.template_json_id = template_json.id;

如果您有重复项,则应使用选择的不同内容进行填充

INSERT INTO db.template_json (`json`)
SELECT distinct `json`
FROM db.template;

关于mysql - 规范化 - 将数据迁移到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39511426/

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