Как определить общее количество строк, затронутых в транзакции до принятия в postgresql? - PullRequest
0 голосов
/ 30 января 2019

У меня есть сценарий использования, в котором я буду выполнять произвольную группу неизвестных запросов SQL / pglpsql, предоставленных мне пользователем.Я пишу скрипт Python, который будет выполнять эти запросы в одной транзакции.Теперь, в транзакции, до фиксации, я хотел бы видеть, сколько строк коснулось CUMULATIVELY, так что, если это число превышает фиксированный постоянный порог, я могу откатить транзакцию обратно.Я использую базу данных PostreSQL.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 30 января 2019

Возможно, поможет следующая функция: -

    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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...