首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新以进行更新?

更新以进行更新?
EN

Stack Overflow用户
提问于 2018-01-03 03:49:34
回答 1查看 42关注 0票数 1

除了使用嵌套的更新返回而不是select之外,还有什么方法可以执行SELECT ... FOR UPDATE吗?我想的场景看起来有点像:

代码语言:javascript
复制
UPDATE cars
SET model='myModel', ownerID=(
  UPDATE owners
  SET cars_owned = cars_owned + 1
  WHERE name = 'fred'
  RETURNING id
)
WHERE id = 'abc123';

有没有办法在没有事务的情况下自动完成这项工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-03 03:51:01

说大也大吧。您可以使用CTE:

代码语言:javascript
复制
WITH o as (
      UPDATE owners
          SET cars_owned = cars_owned + 1
      WHERE name = 'fred'
      RETURNING id
     )
UPDATE cars
    SET model = 'myModel',
        ownerID = (SELECT id FROM o);
WHERE id = 'abc123';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48066965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档