在 PostgreSQL 中,查看事务隔离级别的方法如下:
使用 SHOW 命令直接查看当前会话的隔离级别:
SHOW TRANSACTION ISOLATION LEVEL;
 
 
 
 
- 示例输出:
transaction_isolation 
---------------------
read committed
 
 
 
 
 
SHOW default_transaction_isolation;
 
 
 
 
SELECT name, setting FROM pg_settings WHERE name = 'default_transaction_isolation';
 
 
 
 
- 示例输出:
name                     | setting  
-------------------------|----------
default_transaction_isolation | read committed
 
 
 
 
 
在事务块中使用 current_setting 函数:
BEGIN;
SELECT current_setting('transaction_isolation');
COMMIT;
 
 
 
 
PostgreSQL 支持的隔离级别包括:
READ COMMITTED(默认) 
REPEATABLE READ 
SERIALIZABLE 
READ UNCOMMITTED(实际行为与 READ COMMITTED 相同) 
- 
设置当前会话的隔离级别:
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL [隔离级别];
 
 
 
 
例如:
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
 
 
 
 
- 
设置全局默认隔离级别:
- 修改 
postgresql.conf 文件中的 default_transaction_isolation 参数:
default_transaction_isolation = 'read committed'  -- 可选值:read committed, repeatable read, serializable
 
 
 
 
 
- 执行 
SELECT pg_reload_conf(); 使配置生效。 
 
READ UNCOMMITTED 的特殊性:PostgreSQL 没有真正实现读未提交隔离级别,设置该级别会被当作 READ COMMITTED 处理。 
- 事务内的隔离级别:使用 
BEGIN 或 START TRANSACTION 时,可以指定隔离级别:
BEGIN ISOLATION LEVEL REPEATABLE READ;
 
 
 
 
 
通过以上方法,您可以快速查看当前会话、事务或全局的隔离级别,并根据需求调整。