首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Postgres在一个事务内组合两个写查询

Postgres在一个事务内组合两个写查询
EN

Stack Overflow用户
提问于 2019-06-03 06:11:27
回答 1查看 46关注 0票数 0

我正在尝试编写一个事务来更新两个不同表上的两行

代码语言:javascript
复制
BEGIN;

UPDATE comments SET upvoted = upvoted + 1 
WHERE comment_id = $1 AND posted_by = $2;

INSERT INTO commentsvoted(id, user_id, votes, thread_id) 
VALUES($1, $2, true, $3);

COMMIT;

此查询在pgadmin中有效,但在lambda中不起作用,并返回错误

代码语言:javascript
复制
cannot insert multiple commands into a prepared statement

我如何将这两次写入合并到一条语句中?为什么它不能在pgadmin之外工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-03 06:31:56

在Postgres中,您可以将其编写为单个语句:

代码语言:javascript
复制
WITH u as (
      UPDATE comments
          SET upvoted = upvoted + 1 
          WHERE comment_id = $1 AND posted_by = $2
     )
INSERT INTO commentsvoted (id, user_id, votes, thread_id) 
    VALUES($1, $2, true, $3);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56419305

复制
相关文章

相似问题

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