如何在PostgreSQL事务中使用变量

2024-05-06

如何在 Postgresql 事务内部将值获取到变量中,如果 SELECT 没有返回任何内容,则抛出错误,如果 SELECT 返回数据,则在事务中使用它们?

像这样:

BEGIN;

@activeRounds = SELECT * FROM "rounds" WHERE status = 'active';

if(!@activeRounds) {
  RAISE ERROR "Has no Active rounds"
};

INSERT INTO "bet"
  (user_id, round_id)
VALUES
  (100, @activeRound[0].id)


COMMIT;

如何在一笔交易的一个请求中做类似的事情?


您可以根据您的表结构调整以下代码:

begin;
do
$$
declare
 v int;
begin
 select c1 into v from t1 where  k1=1;
 if not found 
 then
  raise exception 'no row found';
 else
  insert into t2(c2) values(v);
 end if;
end;
$$;
commit;

注意之间的区别begin;开始交易并begin启动 pl/pgSQL 块。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在PostgreSQL事务中使用变量 的相关文章

  • 使用条件 SQL 统计每月汇总记录

    我有一张桌子 我们就叫他们桌子吧SUMMARYDATA NIP NAME DEPARTMENT STATUSIN STATUSOUT TOTALLOSTTIME A1 ARIA BB 2020 01 21 08 06 23 2020 01
  • 删除表的重复项

    In my activity logs 它包含列 material name user id mod result 这标志着测试是否通过 失败 cert links 不知何故 用户生成了两倍的条目material name与cert lin
  • 使用 .NET 中的类型化数据集将 SQL 参数传递给 IN() 子句

    首先道歉 因为该网站上有类似的问题 但没有一个直接回答这个问题 我在 VS 2010 中使用类型化数据集 我在数据集中创建一个 TableAdapter 查询如下 SELECT from Table WHERE ID IN IDs 现在如果
  • ASP SQL Server 连接

  • 如何连续添加起始行和下一行的值

    我只想创建一个 sql 查询 结果就像图片上的那样 类似于 SQL 中的斐波那契数列 Ex Column 1 10 则 Result 列的值为 Result 10 因为这是第一行 然后假设column1第二行的值为50 那么Result第二
  • 自动删除主键序列中的间隙

    我正在创建一个网页 该网页根据用户操作将数据存储到 MySQL 数据库中 数据库有很多行 行的主键是列 rowID 它只是按顺序对行进行编号 例如 1 2 3 4 用户可以选择删除行 问题是当用户删除最后一行以外的行时 rowID 中有一个
  • postgreSQL 在 WAMP 上的集成

    我刚刚在 Windows 7 上安装了 postgreSQL 我正在尝试将 postgreSQL 与 WAMP 服务器集成 为此 我在 httpd conf 和 php ini 文件中进行了以下更改 1个加载模块c path to libp
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • 部分唯一索引不适用于冲突子句 PostgreSQL

    表结构 create table example a id integer b id integer c id integer flag integer 部分索引 create unique index u idx on example a
  • 如何在 Django QuerySet 中将 DateField() + TimeField() 转换为本地时间?

    我的模型为这些字段 date models DateField 开始时间 models TimeField 结束时间 models TimeField 我想用以下方式注释查询集start datetime and end datetime
  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • postgresql 登录到另一个表时发生冲突

    我正在使用 PostgreSQL 9 5 并尝试使用批量插入每天插入数百万行 INSERT INTO tours as cst adults country id price VALUES 3 129 80 2 119 120 on con
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • SQL 使用另一列的键和最大值设置列

    我需要根据同一 ID 的 duration 列的最大值更新 max register 列 将值设置为 1 其他值设置为 0 初始表 Id duration max register 1 0 0 1 7 0 1 3 0 2 10 0 2 5
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • SQL - 需要查找重复记录但排除反向事务

    我有一张交易表 偶尔会有 重复条目 如果 当管理员发现这些重复条目时 他们将撤销交易 从而创建负值 但由于监管要求 原始重复条目仍然保留 我想创建一个 SQL 查询 并使用 Crystal Reports 来制作报告 以便管理员轻松查找重复
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • TimescaleDB 查询选择列值较上一行发生更改的行

    最近刚刚开始使用 TimescaleDB 和 Postgres 来处理大多数数据请求 然而 我遇到了一个问题 即我对时间序列数据的请求效率极低 它是一个可以是任意时间长度 具有特定整数值的数据系列 大多数时候 除非出现异常 否则该值将是相同
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不

随机推荐

  • 如何判断“NSManagedObject”是否已被删除?

    我有一个NSManagedObject已被删除 并且包含该托管对象的上下文已被保存 我明白那个isDeleted回报YESif Core Data 将要求持久存储在下一次保存操作期间删除该对象 然而 由于保存已经发生 isDeleted回报
  • Mac OS Flutter 构建应用程序包失败:密钥库格式无效

    自从一周以来 我一直在尝试从 flutter 应用程序创建 android 应用程序包 并且我一直遵循创建上传密钥库 https flutter dev docs deployment android给定 flutter 官方网站 在 Ma
  • 将一行字段设置为其他 2 个字段的乘积

    我有一个这样的SQL表结构 Id A B C D 1 1 5 6 25 2 2 10 5 25 3 3 7 4 25 4 1 6 5 26 5 2 10 5 26 6 3 8 3 26 我想写一个脚本 它将更新所有B 和 C 列在行中A 3
  • 阿拉伯语查询字符串问题(???在值中)

    我在查询字符串中发送一个阿拉伯语值 当在服务器上检索它时 该值是错误的并被引号替换 例如 http server mypage aspx qs mortgage http server mypage aspx qs D9 85 D8 B1
  • 如何在GIT中检出单个文件

    我们开发了一个自动部署工具 用于在 jboss 服务器中部署文件 ear war 和 jar 开发人员将在 Visual Source 安全中签入文件 自动部署工具会自动一一检出开发者指定的最新文件 并使用API 将其部署到jboss服务器
  • 在 Python 中计算分布的对数似然

    有什么简单的方法计算任何分布的对数似然适合数据 OP 的解决方案 Python 有 82 个标准发行版 可以找到here https docs scipy org doc scipy reference stats html continu
  • 使用 libclang 从内存中的 C 代码生成程序集

    我需要实现一个使用 LLVM Clang 作为后端将 C 代码编译为 eBPF 字节码的库 代码将从内存中读取 我也需要在内存中获取生成的汇编代码 到目前为止 我已经能够使用以下代码编译为 LLVM IR include
  • 如何查看 docker build“RUN 命令”标准输出? (适用于 Windows 的 Docker)

    过去我可以简单地做这样的事情 Dockerfile FROM ubuntu RUN echo test 这会输出test到我的壳 我用它作为调试我的构建的一种方式 在 Windows 版 docker 的最新稳定版本中 构建输出看起来完全不
  • 数百个空闲线程的影响

    我正在考虑使用可能数百个线程来实现通过网络管理设备的任务 这是一个在带有 Linux 内核的 powerpc 处理器上运行的 C 应用程序 在每个任务进行同步以将数据从设备复制到任务的初始阶段之后 任务变得空闲 并且仅在收到警报或需要更改一
  • 使用终端将信息输入 Javascript

    我想获取 C 程序的输出并将其输入到 javascript 文件的标准输入中 但是我无法使用该方法将任何内容推送到标准输入中 node example js lt test txt 因为我收到以下错误 示例 js 35 stdin setR
  • Intellij Idea:导入Gradle项目-尚未定义JAVA_HOME

    Intellij 理念 14 1 4 Mac OS X Yosemite 10 10 3 及更高版本 从 IDE Import Project gt Chosen directory to import gt Import project
  • Mysql 选择 csv 字符串中的 where 字段

    我想从一个表中进行选择 其中的字段位于传递给存储过程的给定 csv 字符串中 最快的方法是什么 我应该将这些值插入临时表并加入其中吗 或者有没有办法用一个语句来做到这一点 Thanks 做了一些搜索并找到了一个很好的答案 使用MySql的字
  • 在 django 模板中显示字典键

    我想知道如何在 django 模板中显示字典键本身 字典示例 resources coin coin grain grain iron iron stone stone wood wood 模板 b Coin b upgrade coin
  • 自动 npm install --legacy-peer-deps 用于单个依赖项

    假设我有一个package json像这样 name my app version 0 1 0 dependencies aws sdk client s3 3 21 0 testing library react 11 2 5 axios
  • Swift UITextFieldShouldReturn 返回键点击

    iOS8 Xcode6 斯威夫特 使用 Swift 如何捕获 返回 按钮上的点击 以下链接中的文档指定使用textFieldShouldReturn方法 Swift optional func textFieldShouldReturn t
  • 如何在浏览模式下禁用 RStudio 中的查看模式

    Is there a way to disable the View mode in RStudio when debugging functions 代码示例 myfun lt function browser myfun 我知道它不开放
  • 将 NSDate 从一个时区更改为另一个时区 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Clion 中更改 CMake 语法颜色

    我安装了 CLion 并自定义配置了深色主题 以便长时间盯着屏幕时眼睛更舒服 我能够更改 C 语法配置的每种颜色 但 CMake 的颜色选项不存在 并且 CMake 的默认颜色是非常深的橄榄色 需要我睁大眼睛才能阅读 CMake 以代码样式
  • 使用 Java 11 在 Eclipse 中混合模块化和非模块化开发

    自从我从事 Java 编程以来已经有一段时间了 在项目拼图之后 我很惊讶地回到了 Java 编程 整个环境对我来说都是陌生的 我在混合模块化和非模块化环境中使用 Eclipse 2018 09 4 9 0 标准 Java 项目时遇到问题 具
  • 如何在PostgreSQL事务中使用变量

    如何在 Postgresql 事务内部将值获取到变量中 如果 SELECT 没有返回任何内容 则抛出错误 如果 SELECT 返回数据 则在事务中使用它们 像这样 BEGIN activeRounds SELECT FROM rounds