我有一个用例,其中我将执行用户给我的任意大小的未知SQL / pglpsql查询组。我正在编写一个Python脚本,它将在一个事务中执行这些查询。现在,在事务中,在提交之前,我希望能够看到累积地触摸了多少行,这样,如果该数目超过了固定的恒定阈值,我就可以回滚事务。我正在使用PostreSQL数据库。有没有办法做到这一点?
答案 0 :(得分:0)
以下功能可能会有所帮助:-
create or replace function get_rows_affected() returns void as $$ declare
v_count number;
begin
v_count := 0;
update table_name set col_name = '504';
GET DIAGNOSTICS v_count = ROW_COUNT;
if v_count > 2 then
RAISE EXCEPTION 'more than one row affected --> %', v_count;
end if;
end;
$$ language plpgsql;