gpt4 book ai didi

mysql - SQL - 同步非规范化表

转载 作者:行者123 更新时间:2023-11-29 12:47:31 25 4
gpt4 key购买 nike

我有一个 USERS 表和一个 LOGS 表。 LOGS 表已标准化,仅存储 user_id ,直到最近,出于性能原因我决定对其进行非标准化。进行此更改后,我也将 usernameuser_role 列作为 LOGS 表的一部分。

现在我需要根据 LOGS 表的现有记录,根据 的值填写 usernameuser_role 列>user_id列,使数据变得一致。如何才能实现这一目标?我正在寻找可能可以在数据库服务器上运行的 SQL 脚本。

阿西姆

最佳答案

使用类似的东西。您只需加入用户表即可

UPDATE LOGS l
INNER JOIN users u ON u.id=l.user_id
SET l.username=u.name,
l.user_role=u.role
WHERE ... if necessary

更新:

UPDATE LOGS l
INNER JOIN (select l.id as log_id, u.*
from logs l join users u ON u.id=l.user_id
order by l.id
limit 10) sub ON sub.id=l.id
SET l.username=sub.name,
l.user_role=sub.role

关于mysql - SQL - 同步非规范化表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25236311/

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