我从 table 中得到了一堆 id messages,我想更新 table activities。这就是我想象我的查询会起作用的方式(因此您可以更好地了解我要完成的任务):
update activities
set activities.created_at = messages.created_at,
set activities.updated_at = messages.updated_at
from messages
where messages.id in (1,2,3)
activities.trackable_id in (1,2,3)
Run Code Online (Sandbox Code Playgroud)
在 中activities,trackable_id是messages表的外键。所以我需要在活动表中为一些消息设置权限created_at和updated_at时间。
所以基本上activity表格是表格的副本,messages但只是另一种格式。
如何更新活动表中某些消息 ID 的 created_at 和 updated_at,但使用消息表中的数据(数据为 updated_at 和 created_at)?
您似乎没有在 where 子句中加入您的activities和messages表。更正确的语法是:
update activities
set created_at = messages.created_at,
updated_at = messages.updated_at
from messages
where messages.id = activities.trackable_id
AND messages.id in (1,2,3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1241 次 |
| 最近记录: |