如何使用其他表中的条件更新表

罗杰·帕

我有表“ Person”和表“ Fisica”,这是“ Person”的扩展。这两个表都与字段名称Id相关,并且我想根据包含两个表的条​​件来更新表。例如:

Tables:
Persona(Id, Name, Money)
Fisica(Id, LastName, Year)

附带数据:

Persona(1, X, 5)
Persona(2, A, 10)
Fisica(1, Y, 1990)
Fisica(2, B, 2000)

我想在Persona.Name ='X'时设置Persona.Name = some_Value,Fisica.LastName = other_Value和Fisica.Year = number,因此结果

Persona(1, some_Value, 5)
Persona(2, A, 10)
Fisica(1, other_Value, number)
Fisica(2, B, 2000)

我在甲骨文工作

毒ophil

您不能使用一个语句更新两个表。因此,您需要两个UPDATE语句。

因此,您必须先更新一个,然后再更新另一个。问题是,哪个先出现?

没关系,但是如果先更新Persona并更改名称,则在更新Fisica时必须使用新名称。像这样:

update Persona
set name = 'some_Value'
where name = 'current_Name'
;
update Fisica
set lastname = 'other_Value',
    year = number
where id = (
  select id
  from Persona
  where name = 'some_Value'
)
;

如果先更新Fisica,则两次都使用name的旧值,如下所示:

update Fisica
set lastname = 'other_Value',
    year = number
where id = (
  select id
  from Persona
  where name = 'current_Value'
)
;
update Persona
set name = 'some_Value'
where name = 'current_Value'
;

注意number必须替换为实际数值。

良好的编码习惯是将两个语句放在同一事务中,并且仅在两个语句都成功时才提交。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何更新其他表中的状态?

使用具有多个条件的其他表中的数据更新表?

使用其他2个表中的值更新表

使用其他表中的多个值随机更新表

使用 SQL 中的其他表更新/插入表

使用其他2个表中的计算更新表

如何使用当前表中的数据更新其他数据库中的表?

如何使用 MySQL 中其他两个表的值总和更新表

使用其他表的值更新表

如何从具有其他条件的表中删除多行?

如何从具有其他条件的表中删除多行?

如何用其他表中的不同值更新多行?

如何根据其他列中的值更新表

如何从Oracle的SQL中的其他表更新

尝试使用mysql更新其他表中的列

使用 mySQL 中的其他表更新值

使用自身的值更新表,但从其他表中选择条件

使用其他两个表(如连接条件)更新表?

如何使用mySQL使用当前数据库表中的信息更新其他数据库表?

如何使用具有多个连接的其他表中的值更新字段?

如何使用触发器和其他表中的数据更新字段?

如何从具有其他表条件的表中选择

如何从 1 个表中按日期获取记录并更新 Postgresql 中的其他表?

MYSQL:如何根据其他两个表的条件在表中插入行

使用其他表中的值的总和更新sql表中的记录

如何使用EF / LINQ从其他表中获取数据

如何在Laravel中使用其他表中的列

如何使用Sequel从其他表中获取数据

如何使用内部联接从其他表中获取记录