Разница между SET TRANSACTION и SET SESSION CHARACTERISTICS в PostgreSQL заключается в том, что первая команда устанавливает характеристики текущей транзакции, а вторая — по умолчанию для последующих транзакций сессии. 12
SET TRANSACTION позволяет задать, например, уровень изоляции транзакции, режим доступа к транзакции (чтение/запись или только чтение) и режим, допускающий задержку. 12 При этом изменение влияет только на текущую транзакцию и не затрагивает последующие. 13
SET SESSION CHARACTERISTICS, в свою очередь, устанавливает уровень изоляции транзакции по умолчанию (для всех транзакций, а не для отдельных). 3 Эти значения по умолчанию могут быть переопределены командой SET TRANSACTION для отдельной транзакции. 12