【发布时间】:2014-06-11 14:05:32
【问题描述】:
我需要检查更新或插入影响了多少行(实际上,目前仅更新)。我创建了以下函数:
CREATE OR REPLACE FUNCTION rows_affected()
RETURNS integer AS
$BODY$
DECLARE
x INTEGER := -1;
BEGIN
GET DIAGNOSTICS x = ROW_COUNT;
RETURN x;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION rows_affected()
OWNER TO alex1;
然后我更新了一个表并调用了这个函数,结果为零。然后我插入一行并一次又一次地调用该函数,结果为零。怎么了?以及如何正确检查受更新或插入影响的行数?
更新:
这不像我预期的那样工作,而是总是返回 0 作为受影响的行数:
SELECT rows_affected();
update email set email='fdsfds' where id = 1;
insert into email(email) values('fdsfsdfdsfds');
SELECT rows_affected();
【问题讨论】:
标签: sql postgresql postgresql-9.2