BEGIN
启动事务块。
注意
BEGIN 是 启动事务处理 的同义词。语法
BEGIN [ WORK | TRANSACTION ] [ isolation‑level ] [ READ [ONLY] | WRITE ]
参数
WORK | TRANSACTION
- 仅为了提高可读性的可选关键字。
- isolation‑level
- 指定事务的隔离级别,用于确定当同时运行其他事务时此事务可以访问的数据,为以下之一:
-
READ COMMITTED(默认值):
-
REPEATABLE READ(自动转换为 SERIALIZABLE)
-
READ UNCOMMITTED(自动转换为 READ COMMITTED)
有关详细信息,请参阅事务。
-
READ [ONLY] | WRITE
- 指定事务模式,为以下之一:
-
READ WRITE(默认):事务为读取/写入。
-
READ ONLY:事务为只读。
如果将事务会话模式设置为只读,将不允许使用以下 SQL 语句,但是不会阻止所有磁盘写入操作:
-
INSERT、UPDATE、DELETE 和 COPY(如果目标表不是临时表)
-
所有 CREATE、ALTER 和 DROP 命令
-
GRANT、REVOKE 和 EXPLAIN(如果要运行的 SQL 为上面引用的语句之一)。
-
特权
无
示例
创建一个隔离级别设置为 READ COMMITTED 且事务模式设置为 READ WRITE 的事务:
=> BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED READ WRITE;
BEGIN
=> CREATE TABLE sample_table (a INT);
CREATE TABLE
=> INSERT INTO sample_table (a) VALUES (1);
OUTPUT
--------
1
(1 row)
=> END;
COMMIT