в случае, если вам нужно не только отменить ваш последний запрос (хотя ваш вопрос на самом деле только указывает на это, я знаю), и, следовательно, если транзакция может вам не помочь, вам нужно применить обходной путь для этого:
скопируйте исходные данные перед отправкой запроса и запишите их по требованию на основе уникального идентификатора, который должен быть одинаковым в обеих таблицах; ваша таблица отката (с копиями неизмененных данных) и ваша фактическая таблица (содержащая данные, которые должны быть «отменены», чем).
для баз данных, имеющих много таблиц, лучше использовать одну «таблицу отката», содержащую структурированные дампы / копии исходных данных, чем одну для каждой фактической таблицы. он будет содержать имя фактической таблицы, уникальный идентификатор строки и в третьем поле контент в любом желаемом формате, который четко представляет структуру данных и значения (например, XML). на основе первых двух полей это третье будет проанализировано и записано обратно в фактическую таблицу. четвертое поле с отметкой времени поможет очистить таблицу отката.
поскольку в SQL-диалектах нет реальной отмены, несмотря на "откат" в транзакции (исправьте меня, если я ошибаюсь - может быть, теперь есть один), я думаю, это единственный способ, и вы должны написать код для этого самостоятельно.