我正在数据库上编写一个触发器,而不是在表上插入,进行一些操作,然后将数据插入到不同的相关表中。现在我需要禁用自动提交并在触发器内设置不同的隔离级别,我该怎么办?
除了嵌入式 SQL 之外,PostgreSQL 没有禁用自动提交的设置。如果您尝试在 PSQL 中关闭自动提交,您将看到类似此错误的信息。
sandbox=# set autocommit=off;
ERROR: SET AUTOCOMMIT TO OFF is no longer supported
相反,使用 BEGIN 来启动事务。在 PostgreSQL 中,您可以在单个语句中启动事务并设置隔离级别。 (其他平台需要多个语句。)骨架语法对于 PostgreSQL 9.2 来说是
BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
where transaction_mode is one of:
ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ |
READ COMMITTED | READ UNCOMMITTED }
READ WRITE | READ ONLY
[ NOT ] DEFERRABLE
使用 COMMIT 或 ROLLBACK 结束事务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)