DROP TABLE
является транзакционным. Чтобы отменить это, вам нужно выдать ROLLBACK
, а не CREATE TABLE
. То же самое касается CREATE TABLE
(который также отменяется с помощью ROLLBACK).
ROLLBACK
- это всегда единственный правильный способ отменить транзакцию, включая ALTER TABLE и TRUNCATE.
Единственное, что никогда не является транзакционным в Postgres, это числа, сгенерированные последовательностью (сами CREATE / ALTER / DROP SEQUENCE являются транзакционными).