Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
postgresql触发器:禁用自动提交并设置隔离级别_Sql_Postgresql_Triggers_Autocommit_Transaction Isolation - Fatal编程技术网

postgresql触发器:禁用自动提交并设置隔离级别

postgresql触发器:禁用自动提交并设置隔离级别,sql,postgresql,triggers,autocommit,transaction-isolation,Sql,Postgresql,Triggers,Autocommit,Transaction Isolation,我在数据库上编写触发器,而不是在表上插入触发器,这会进行一些操作,然后将数据插入到不同的相关表中。现在我需要禁用自动提交并在触发器内设置不同的隔离级别,我该怎么办?PostgreSQL没有禁用自动提交的设置,除了嵌入式SQL。如果您尝试在PSQL中设置autocommit,您将看到类似于此的错误 sandbox=# set autocommit=off; ERROR: SET AUTOCOMMIT TO OFF is no longer supported 相反,请使用“开始”启动事务。在P

我在数据库上编写触发器,而不是在表上插入触发器,这会进行一些操作,然后将数据插入到不同的相关表中。现在我需要禁用自动提交并在触发器内设置不同的隔离级别,我该怎么办?

PostgreSQL没有禁用自动提交的设置,除了嵌入式SQL。如果您尝试在PSQL中设置autocommit,您将看到类似于此的错误

sandbox=# set autocommit=off;
ERROR:  SET AUTOCOMMIT TO OFF is no longer supported
相反,请使用“开始”启动事务。在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
使用提交或回滚结束事务。

禁用自动提交是什么意思。或者至少,你认为这是什么意思?