计算PostgreSQL中批量查询影响的行数

2023-11-30

首先,是的,我已经阅读了 DO 语句的文档:)http://www.postgresql.org/docs/9.1/static/sql-do.html

所以我的问题是:

我需要执行一些包含 UPDATE 语句的动态代码块并计算所有受影响的行数。我在用着Ado.Net提供者。

在 Oracle 中,解决方案有 4 个步骤:

  1. 将输入输出参数“N”添加到命令中
  2. add 开始...结束;命令
  3. add :N := :N + sql%行数在每个陈述之后。
  4. 完成!执行后我们可以从命令中读取N个参数。

我怎样才能用 PostgreSQL 做到这一点?我正在使用 npgsql 提供程序,但如果有帮助的话可以迁移到 devard。


DO语句块适合执行动态 SQL。它们不利于返回值。用一个plpgsql function为了那个原因。

您需要的关键声明是:

GET DIAGNOSTICS integer_var = ROW_COUNT;

手册中有详细说明。

示例代码:

CREATE OR REPLACE FUNCTION f_upd_some()
  RETURNS integer AS
$func$
DECLARE
   ct int;
   i  int;
BEGIN
   EXECUTE 'UPDATE tbl1 ...';       -- something dynamic here
   GET DIAGNOSTICS ct = ROW_COUNT;  -- initialize with 1st count

   UPDATE tbl2 ...;                 -- nothing dynamic here 
   GET DIAGNOSTICS i = ROW_COUNT;
   ct := ct + i;                    -- add up

   RETURN ct;
END
$func$  LANGUAGE plpgsql;

Call:

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

计算PostgreSQL中批量查询影响的行数 的相关文章

  • Postgres 平均值计算忽略 null

    这是我的 postgres 表 name revenue John 100 Will 100 Tom 100 Susan 100 Ben 5 rows 在这里 当我计算平均收入时 它返回 100 这显然不是这种情况 而总和 计数 即 400
  • 为什么我的 postgis 不在几何字段上使用索引?

    Windows 上的 postgresql 9 5 postgis 2 2 我首先创建一个表 CREATE TABLE points id SERIAL ad CHAR 40 name VARCHAR 200 然后 添加一个几何字段 geo
  • 手动更改postgresql中查询的执行计划?

    是否可以在postgresql中手动更改执行计划的操作顺序 例如 如果我总是想在过滤之前进行排序操作 尽管这在 postgresql 的正常使用中没有意义 是否可以通过例如手动强制执行该操作改变运营的内部成本 如果我实现自己的功能呢 是否可
  • PostgreSQL round(v numeric, s int)

    Which method http en wikipedia org wiki Rounding Tie breakingPostgres 吗round v numeric s int http www postgresql org doc
  • 唯一约束与唯一索引?

    之间有区别吗 CREATE TABLE p product no integer name text UNIQUE price numeric and CREATE TABLE p product no integer name text
  • PostgreSQL 在递归查询中找到所有可能的组合(排列)

    输入是一个长度为 n 的数组 我需要生成数组元素的所有可能组合 包括输入数组中元素较少的所有组合 IN j A B C OUT k A AB AC ABC ACB B BA BC BAC BCA 随着重复 所以AB BA 我尝试过这样的事情
  • 如何创建不返回任何内容的函数

    我想写一个函数pl pgsql 我在用着Postgres 企业管理器 v3并使用 shell 来创建一个函数 但在 shell 中我必须定义返回类型 如果我不定义返回类型 我将无法创建函数 如何创建一个不返回结果的函数 即创建一个新表的函数
  • 如何计算 Postgres 上图表中所有连接的节点(行)?

    我的桌子有account id and device id One account id可以有多个device ids 反之亦然 我正在尝试计算每个连接的多对多关系的深度 Ex account id device id 1 10 1 11
  • 如何引用下一行的数据?

    我正在 PostgreSQL 9 2 中编写一个函数 对于股票价格和日期的表 我想计算每个条目较前一天的百分比变化 对于最早一天的数据 不会有前一天 因此该条目可以简单地为 Nil 我知道WITH声明可能不应该高于IF陈述 到目前为止 这就
  • postgreSQL 在 WAMP 上的集成

    我刚刚在 Windows 7 上安装了 postgreSQL 我正在尝试将 postgreSQL 与 WAMP 服务器集成 为此 我在 httpd conf 和 php ini 文件中进行了以下更改 1个加载模块c path to libp
  • 如何存储没有年份部分的生日?

    类似问题 Postgres 生日选择 https stackoverflow com questions 6913719 postgres birthdays selection 我们正在设计一项新功能 我们将存储人们生日的月份和日期部分
  • 错误关系不存在

    我得到了 error relation causes does not exist 我的节点应用程序出现错误 这种关系确实存在 我不确定问题出在哪里 我创建了该表 CREATE TABLE causes cause id bigint NO
  • 带有可变 WHERE 子句的批量 UPDATE 表

    我有一堆值对 foo1 bar1 foo2 bar2 我想做一堆更新 将 foo 列设置为 foo1 其中 bar 列为 bar1 我正在使用 psycopg2 在 Python 中执行此操作 我可以executemany与查询UPDATE
  • 如何加速spark df.write jdbc到postgres数据库?

    我是 Spark 新手 正在尝试使用 df write 加速将数据帧的内容 可以有 200k 到 2M 行 附加到 postgres 数据库 df write format jdbc options url psql url spark d
  • TimescaleDB 查询选择列值较上一行发生更改的行

    最近刚刚开始使用 TimescaleDB 和 Postgres 来处理大多数数据请求 然而 我遇到了一个问题 即我对时间序列数据的请求效率极低 它是一个可以是任意时间长度 具有特定整数值的数据系列 大多数时候 除非出现异常 否则该值将是相同
  • Django 模型:默认日期时间未转换为 SQL CURRENT_TIMESTAMP

    我正在使用 Django 模型创建 PostgreSQL DB 我有一个 DateTimeField 我想将当前时间戳设置为默认值 我知道有多个消息来源建议如何做到这一点 但是 当我在 Django 之外检查数据库时 默认时间戳不会显示 我
  • postgresql 不同的不工作

    我使用以下代码从数据库获取值 但是当我编写这段代码时 测试看看问题出在哪里 我注意到查询没有从数据库中获取不同的值 这是查询 select distinct ca id as id acc name as accName pIsu name
  • PostgreSQL:删除数据库但数据库仍然存在[重复]

    这个问题在这里已经有答案了 我是 PostgreSQL 的新手 我尝试着理解它 我熟悉数据库和MySQL 我正在尝试删除我创建的数据库 因为 psql 似乎忽略了我尝试通过 Django 推送的更改 当我执行时 l我得到以下回复 List
  • Django 和 PostgreSQL - 值对于类型字符变化来说太长(512)

    我正在从测试 SQLite 数据库迁移到 PostgreSQL 数据库 我有一个插入到数据库中的示例对象 它在 SQLite 上工作 但在 PostgreSQL 中给我一个错误 代码片段是 car CarItem objects creat
  • pg_restore错误:角色XXX不存在

    尝试将数据库从一个系统复制到另一个系统 涉及的版本是9 5 0 源 和9 5 2 目标 源数据库名称是foodb与主人pgdba并且目标数据库名称将被命名foodb dev与主人pgdev 所有命令都在将托管副本的目标系统上运行 The p

随机推荐

  • Power Bi Desktop - 如何在表之间添加值?

    我正在尝试创建一个列 该列的总值介于 3 个表中的 3 列之间 我该怎么做呢 这两个表是共享一个 id 的值表 并且它们都通过 Id 链接到帐户表 目标是将 3 列相加 并将其放入按 Id 分组的表中 我尝试对它们进行求和 尝试使用 USE
  • 包含用户名数据的 AutoCompleteCustomSource 不起作用

    我正在尝试创建一个具有自动完成功能的文本框 在我的表单的构造函数中 我从数据库获取数据并设置文本框AutoCompleteCustomSource属性到用户名数组 由于某种原因 自动完成功能不起作用 我确信没有任何问题db getUsers
  • C++ 中指针的地址交换

    如何在具有签名的函数内交换指针地址 比方说 int weight height void swap int a int b 因此 在退出该函数之后 实际参数的地址 weight and height 将被改变 有可能吗 如果要交换指针指向的
  • 为什么不使用 MD5 进行密码哈希处理?

    我有一个朋友 他是白帽黑客 他说 md5 并没有那么糟糕 而且实际上非常安全 只要我们正确使用它 我相信他是对的 据我所知 有3种方法可以破解哈希值 使用彩虹表 可以通过长 随机盐来保护 碰撞 可以通过多种盐或哈希来防止 如下例所示 生成时
  • 使用cmake为vs2013配置cuda项目并得到“无效设备功能”错误

    我使用cmake gui工具在vs2013中配置我的cuda项目 CMakeLists txt如下 project CUDA PART required cmake version cmake minimum required VERSIO
  • 为什么我会收到带有受保护静态成员的 C2248(无法访问的成员)?

    假设我有 include
  • 使 JFormattedTextField 的行为类似于 ATM 输入

    我想知道是否有办法使 JformattedTextField 或 jtextField 表现得像 atm 货币输入 我的意思是你从右到左输入 假设你输入 10 你需要再按 2 个 0 这样它就会是 10 00 当他从右向左打字时 程序会自动
  • 使用 Firebase 的 WebRTC 语音聊天

    我以前从未尝试过 webrtc 我有一个使用 Firebase 制作的应用程序 现在我正在尝试在其中添加语音通话功能 因此尝试搜索一些教程 大多数都使用 PubNub 或大多数教程基于网络应用程序 我看到了这个 stackoverflow
  • 当 fps 高于 15 时,Pygame 蛇速度太高

    在我用 pygame 制作的蛇游戏中 我很难弄清楚速度的物理原理 问题是 一旦我将 fps 设置为高于 15 蛇的速度也会增加 我知道这与毫秒等有关 我发现它可以工作 高帧率但速度慢 然而那时 我无法让 X 和 Y 正确 这样我就可以吃苹果
  • 尽管设置了 Djava.library.path 变量,仍出现 UnsatisfiedLinkError

    我正在尝试将 IBM 的 CPLEX 库与我的 java 应用程序集成 现在 我只是尝试创建一个 IloCplex 对象 我添加了 Cplex jar 它编译得很好 但是当我运行它时 public class cplexTest publi
  • 在Java中,我可以定义二进制格式的整数常量吗?

    与如何用十六进制或八进制定义整数常量类似 我可以用二进制来定义吗 在 Java 7 中 int i 0b10101010 旧版本的 Java 中没有二进制文字 请参阅其他答案以获取替代方案
  • 具有二进制颜色编码和原始输入注释的 Seaborn 热图

    我需要根据数据帧列中的值是高于还是低于阈值 将它们显示为二进制颜色图 我还需要显示原始数字 我正在使用seaborn 热图 样本数据框 Month Raw value Jan 3 72 feb 2 51 Mar 1 82 我已将该列转换为二
  • PHP file_exists($var) 不工作

    我正在尝试在笔记本上编写一些代码并使用 xampp 环境 我有以下代码 class A foreach blocks as block block dir dir2 block if file exists block true var f
  • 视图中的动态列名称 (Postgres)

    我目前正在编写一个 SQL 视图 它应该提供特定月份填充字段的计数 这就是我希望构建视图的方式 Country Current Month 12 Eg Feb 2011 Current Month 11 Current Month 10 U
  • 如何使用正则表达式查找并删除文件中的重复行? [关闭]

    Closed 这个问题是无关 目前不接受答案 这个问题与语言无关 仅使用正则表达式 我可以查找并替换文件中的重复行吗 请考虑以下示例输入和我想要的输出 输入 gt gt 11 22 22 lt duplicate 33 44 44 lt d
  • Android - 在本机和 Java 应用程序之间使用管道

    我正在 SGS2 api v 16 上进行开发 我有两个应用程序 本机和 Java 在本机应用程序中 我使用 mkfifo 函数打开一个 Unix 管道并向其写入一些字符串 在java应用程序中 我试图读取字符串 但不知何故 应用程序阻塞了
  • PHP 从 xml 属性中读取十进制整数

    我想使用 PHP 编写一个函数 从 XML 中获取数字 然后将这些数字相乘 但是 我不知道如何在 SimpleXML 中使用十进制数字 PHP xml new SimpleXMLElement
  • jquery droppable -> 避免多次删除同一对象

    我有一个包含不同可拖动元素的容器 并且有一些 目标 div 的列表 用户可以在其中放置可拖动元素 例子 想象一下 您有一个 标签 列表 房屋 计算机 汽车 和一些作为目标的文档列表 所有文档都是 div 的一部分 div 因此 目标是使用拖
  • 基本 wxWidgets 定时器

    作为 wxWidgets 的新手 我需要一些如何让 wxTimer 工作的示例代码 参考资料提供了 3 种使用方法 但不包含其中任何一种的示例代码 最理想的情况是 我想让方法 2 发挥作用 来自samples widgets gauge c
  • 计算PostgreSQL中批量查询影响的行数

    首先 是的 我已经阅读了 DO 语句的文档 http www postgresql org docs 9 1 static sql do html 所以我的问题是 我需要执行一些包含 UPDATE 语句的动态代码块并计算所有受影响的行数 我