我想返回受最后一个语句影响的行数。
使用Microsoft SQL Server 2008 R2我这样做:
SELECT * FROM Test_table;
SELECT @@ROWCOUNT AS [Number Of Rows Affected];
将给出:
Number Of Rows Affected
-----------------------
10
在PostgreSQL 9.3中怎么样?
答案 0 :(得分:9)
DO $$
DECLARE
total_rows integer;
BEGIN
UPDATE emp_salary
SET salary = salary+1;
IF NOT FOUND THEN
RAISE NOTICE'Now 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 $$;
答案 1 :(得分:0)
AFAIK在postgresql中没有这样的构造,但是行数是你从postgresql获得的结果的一部分。
更正:正如a_horse_with_no_name在他的评论中指出的,可以在PL / pgSQL中使用类似的东西。另见发布的答案示例 Achilles Ram Nakirekanti
从程序内部来看,我的原始建议在大多数情况下更容易使用PL / pgSQL。
使用libpq时: 在select的结果上,您可以使用PQntuples来确定返回的行数。对于更新,插入和删除,您可以使用PQcmdTuples和结果来获取受影响的行数。
其他客户端库通常具有类似的功能。