@@PostgreSQL 9.3中的行数
我想返回受上一条语句影响的行数 使用Microsoft SQL Server 2008 R2,我可以这样做:@@PostgreSQL 9.3中的行数,postgresql,postgresql-9.3,Postgresql,Postgresql 9.3,我想返回受上一条语句影响的行数 使用Microsoft SQL Server 2008 R2,我可以这样做: SELECT * FROM Test_table; SELECT @@ROWCOUNT AS [Number Of Rows Affected]; 威尔给出: Number Of Rows Affected ----------------------- 10 在PostgreSQL 9.3中如何?AFAIK在PostgreSQL中没有这样的构造,但是行数是从PostgreSQL获
SELECT * FROM Test_table;
SELECT @@ROWCOUNT AS [Number Of Rows Affected];
威尔给出:
Number Of Rows Affected
-----------------------
10
在PostgreSQL 9.3中如何?AFAIK在PostgreSQL中没有这样的构造,但是行数是从PostgreSQL获得的结果的一部分 更正:一个没有名字的马在他的评论中说,PL/pgSQL中也可以使用类似的东西。另请参见由发布的答案中的示例 阿基里斯·拉姆·纳基尔坎蒂 然而,从程序内部来看,我最初的建议在大多数情况下比使用PL/pgSQL更容易 使用libpq时: 在选择的结果上,可以使用PQntuples确定返回的行数。对于“更新”、“插入”和“删除”,可以使用PQcmdTuples获得受影响的行数 其他客户端库通常具有类似的功能
对于参考文章中的REF:GET DIAGNOSTICS integer\u var=ROW\u COUNT 如果在存储过程中执行此操作,可以使用
ROW\u COUNT
参见此处:@a\u horse\u和\u no\u name,请给我举个例子好吗?使用函数。手册中有一个例子(我发布的链接)@a_horse_,没有名字,耶!现在明白了。我在编码方面有缺点。非常感谢。当答案不正确时,有没有办法改变被接受的答案?至少从PostgreSQL 7.2(在给出公认答案之前的10年)开始,就有一种方法可以做到这一点。下面给出了正确答案。MAK需要改变这一点。然而,我编辑了我的答案以反映情况,并对其他答案和指向该解决方案的原始评论进行了投票。
DO $$
DECLARE
total_rows integer;
BEGIN
UPDATE emp_salary
SET salary = salary+1;
IF NOT FOUND THEN
RAISE NOTICE'No rows found %';
ELSIF FOUND THEN
GET DIAGNOSTICS total_rows := ROW_COUNT;
-- the above line used to get row_count
RAISE NOTICE'Rows Found : total_rows: %', total_rows;
END IF;
END $$;