在MySQL中更新中升级

在MySQL中更新中升级,mysql,Mysql,是否可以以嵌套方式执行UPDATE-SET-WHERE 例如,表obj_B中的项目具有表obj_A中项目的id。执行更新查询,首先选择并更新obj_A中的项目,然后更新obj_B中相应的项目 更新obj_A 设置 obj_A.col1=“2020-12-12 00:00:00”, obj_A.col2=“abc” 更新obj_B 设置 obj_B.col1=“foo”, obj_B.col2=“某物”, 时间=“2020-12-12 00:00:00” 其中obj_B.obj_A_ID=obj_

是否可以以嵌套方式执行UPDATE-SET-WHERE

例如,表obj_B中的项目具有表obj_A中项目的id。执行更新查询,首先选择并更新obj_A中的项目,然后更新obj_B中相应的项目

更新obj_A
设置
obj_A.col1=“2020-12-12 00:00:00”,
obj_A.col2=“abc”
更新obj_B
设置
obj_B.col1=“foo”,
obj_B.col2=“某物”,
时间=“2020-12-12 00:00:00”
其中obj_B.obj_A_ID=obj_A.ID
其中obj_A.email=”123@gmail.com“和obj_A.meta=“456”
我知道有一种方法可以产生相同的结果(见下文),但我想知道是否可以递归地执行查询

更新用户、设备
设置
obj_A.col1=“2020-12-12 00:00:00”,
obj_A.col2=“abc”,
obj_B.col1=“foo”,
obj_B.col2=“某物”,
时间=“2020-12-12 00:00:00”
其中obj_A.email=”123@gmail.com“和obj_A.meta=“456”和obj_B.obj_A_ID=obj_A.ID

这两个更新为什么不能在一个事务中运行?我真的看不到任何关于你在这里尝试做什么的“递归”。@TimBiegeleisen哇,谢谢你的快速回复。我想了解更多关于查询/状态如何以编程方式工作的信息。我只是想知道是否可以这样做。存在多表更新。@Akina感谢您的回复。我同意你的观点,我已经更新了这个问题来详细说明。我看不出递归隐藏在你的方案中。。。
UPDATE    obj_A
LEFT JOIN obj_B ON obj_B.obj_A_ID = obj_A.id
SET obj_A.col1 = "2020-12-12 00:00:00",
    obj_A.col2 = "abc"
    obj_B.col1 = "foo",
    obj_B.col2 = "something",
    obj_B.time = "2020-12-12 00:00:00"
WHERE obj_A.email = "123@gmail.com"
  AND obj_A.meta = "456"