From 304fa8ae9967c52029aed432914610a59547a5a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=A2=85=E7=A8=8B?= <517719039@qq.com>
Date: Mon, 7 Apr 2025 17:49:10 +0800
Subject: [PATCH] =?UTF-8?q?D=E5=BA=93=E4=BA=8B=E5=8A=A1=E6=8E=A7=E5=88=B6?=
=?UTF-8?q?=E8=AF=AD=E5=8F=A5=E5=85=BC=E5=AE=B9=E8=B5=84=E6=96=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../shark-SQL\345\217\202\350\200\203.md" | 2 +-
.../shark-\344\272\213\345\212\241.md" | 3 +
...k-\345\205\263\351\224\256\345\255\227.md" | 19 ++++
...41\347\220\206\344\272\213\345\212\241.md" | 102 ++++++++++++++++++
.../shark-SQL\345\217\202\350\200\203.md" | 2 +-
.../shark-\344\272\213\345\212\241.md" | 3 +
...k-\345\205\263\351\224\256\345\255\227.md" | 19 ++++
...41\347\220\206\344\272\213\345\212\241.md" | 101 +++++++++++++++++
8 files changed, 249 insertions(+), 2 deletions(-)
create mode 100644 "content/docs-lite/zh/docs/ExtensionReference/shark-\344\272\213\345\212\241.md"
create mode 100644 "content/docs-lite/zh/docs/ExtensionReference/shark-\347\256\241\347\220\206\344\272\213\345\212\241.md"
create mode 100644 "content/zh/docs/ExtensionReference/shark-\344\272\213\345\212\241.md"
create mode 100644 "content/zh/docs/ExtensionReference/shark-\347\256\241\347\220\206\344\272\213\345\212\241.md"
diff --git "a/content/docs-lite/zh/docs/ExtensionReference/shark-SQL\345\217\202\350\200\203.md" "b/content/docs-lite/zh/docs/ExtensionReference/shark-SQL\345\217\202\350\200\203.md"
index 6380f72ce..ddbc8e2b4 100644
--- "a/content/docs-lite/zh/docs/ExtensionReference/shark-SQL\345\217\202\350\200\203.md"
+++ "b/content/docs-lite/zh/docs/ExtensionReference/shark-SQL\345\217\202\350\200\203.md"
@@ -6,4 +6,4 @@
- **[SQL语法](shark-SQL语法.md)**
-
+- **[事务](shark-事务.md)**
diff --git "a/content/docs-lite/zh/docs/ExtensionReference/shark-\344\272\213\345\212\241.md" "b/content/docs-lite/zh/docs/ExtensionReference/shark-\344\272\213\345\212\241.md"
new file mode 100644
index 000000000..7db8d0fe9
--- /dev/null
+++ "b/content/docs-lite/zh/docs/ExtensionReference/shark-\344\272\213\345\212\241.md"
@@ -0,0 +1,3 @@
+# 事务
+
+- [管理事务](shark-管理事务.md)
\ No newline at end of file
diff --git "a/content/docs-lite/zh/docs/ExtensionReference/shark-\345\205\263\351\224\256\345\255\227.md" "b/content/docs-lite/zh/docs/ExtensionReference/shark-\345\205\263\351\224\256\345\255\227.md"
index 5c5d0a777..c7bedd404 100644
--- "a/content/docs-lite/zh/docs/ExtensionReference/shark-\345\205\263\351\224\256\345\255\227.md"
+++ "b/content/docs-lite/zh/docs/ExtensionReference/shark-\345\205\263\351\224\256\345\255\227.md"
@@ -16,6 +16,7 @@ SQL里有保留字和非保留字之分。根据标准,保留字决不能用
相比于原始的openGauss,shark对于关键字的修改主要为:
1. 新增```columnstore```,```clustered```,```nonclustered```作为非保留关键字。
+2. 新增```save```,```tran```作为非保留关键字。
**表 1** SQL关键字
@@ -5863,6 +5864,15 @@ SQL里有保留字和非保留字之分。根据标准,保留字决不能用
-
|
+SAVE
+ |
+非保留
+ |
+-
+ |
+-
+ |
+
SAVEPOINT
|
非保留
@@ -6926,6 +6936,15 @@ SQL里有保留字和非保留字之分。根据标准,保留字决不能用
| 保留
|
+TRAN
+ |
+非保留
+ |
+-
+ |
+-
+ |
+
TRANSACTION
|
非保留
diff --git "a/content/docs-lite/zh/docs/ExtensionReference/shark-\347\256\241\347\220\206\344\272\213\345\212\241.md" "b/content/docs-lite/zh/docs/ExtensionReference/shark-\347\256\241\347\220\206\344\272\213\345\212\241.md"
new file mode 100644
index 000000000..9d0182a3f
--- /dev/null
+++ "b/content/docs-lite/zh/docs/ExtensionReference/shark-\347\256\241\347\220\206\344\272\213\345\212\241.md"
@@ -0,0 +1,102 @@
+
+# 管理事务
+
+事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。shark插件支持的事务控制命令有启动、设置保存点、提交、回滚事务。
+
+## 注意事项
+
+- 本章节只包含shark新增的语法,原openGauss的语法未做删除和修改。
+
+## 语法格式
+
+- 启动事务
+
+ 使用BEGIN语法启动事务。
+
+ ```
+ BEGIN { TRAN | TRANSACTION } [ { transaction_name } ];
+ ```
+
+- 设置保存点
+
+ 使用save语法为当前数据状态做一个标记,它允许将那些在它建立后执行的命令全部回滚,把事务的状态恢复到保存点所在的时刻。
+
+ 设置保存点。
+
+ ```
+ SAVE { TRAN | TRANSACTION } { savepoint_name };
+ ```
+
+ 回滚保存点。
+
+ ```
+ ROLLBACK { TRAN | TRANSACTION } { savepoint_name };
+ ```
+
+- 提交事务
+
+ 使用COMMIT完成提交事务的功能,即提交事务的所有操作。
+
+ ```
+ COMMIT [ { TRAN | TRANSACTION } [ transaction_name ] ];
+ ```
+
+- 回滚事务
+
+ 使用ROLLBACK回滚到某个保存点或回滚事务中的所有操作。带有savepoint_name参数时回滚到对应保存点,否则回滚所有操作。
+
+ ```
+ ROLLBACK { TRAN | TRANSACTION } [ savepoint_name ];
+ ```
+
+
+## 参数说明
+
+- **TRAN | TRANSACTION**
+
+ BEGIN格式中的可选关键字,没有实际作用。
+
+- **transaction_name**
+
+ 无实际意义,仅语法兼容。
+
+- **SAVE**
+
+ 设置保存点。
+
+- **savepoint_name**
+
+ 保存点名称,后续使用ROLLBACK命令时可以用。
+
+- **COMMIT**
+
+ 提交当前事务,让所有当前事务的更改为其他事务可见。
+
+- **ROLLBACK**
+
+ 回滚当前事务,撤销操作。
+
+## 示例
+
+```
+opengauss=# create table t1 (c1 int);
+CREATE TABLE
+opengauss=# begin tran;
+BEGIN
+opengauss=# insert into t1 values(1);
+INSERT 0 1
+opengauss=# save tran savepoint1;
+SAVEPOINT
+opengauss=# insert into t1 values(2);
+INSERT 0 1
+opengauss=# rollback tran savepoint1;
+ROLLBACK
+opengauss=# commit tran;
+COMMIT
+opengauss=# select * from t1;
+ c1
+----
+ 1
+(1 row)
+
+```
diff --git "a/content/zh/docs/ExtensionReference/shark-SQL\345\217\202\350\200\203.md" "b/content/zh/docs/ExtensionReference/shark-SQL\345\217\202\350\200\203.md"
index 6380f72ce..e9753f7b3 100644
--- "a/content/zh/docs/ExtensionReference/shark-SQL\345\217\202\350\200\203.md"
+++ "b/content/zh/docs/ExtensionReference/shark-SQL\345\217\202\350\200\203.md"
@@ -6,4 +6,4 @@
- **[SQL语法](shark-SQL语法.md)**
-
+- **[事务](shark-事务.md)**
diff --git "a/content/zh/docs/ExtensionReference/shark-\344\272\213\345\212\241.md" "b/content/zh/docs/ExtensionReference/shark-\344\272\213\345\212\241.md"
new file mode 100644
index 000000000..7db8d0fe9
--- /dev/null
+++ "b/content/zh/docs/ExtensionReference/shark-\344\272\213\345\212\241.md"
@@ -0,0 +1,3 @@
+# 事务
+
+- [管理事务](shark-管理事务.md)
\ No newline at end of file
diff --git "a/content/zh/docs/ExtensionReference/shark-\345\205\263\351\224\256\345\255\227.md" "b/content/zh/docs/ExtensionReference/shark-\345\205\263\351\224\256\345\255\227.md"
index 5c5d0a777..c7bedd404 100644
--- "a/content/zh/docs/ExtensionReference/shark-\345\205\263\351\224\256\345\255\227.md"
+++ "b/content/zh/docs/ExtensionReference/shark-\345\205\263\351\224\256\345\255\227.md"
@@ -16,6 +16,7 @@ SQL里有保留字和非保留字之分。根据标准,保留字决不能用
相比于原始的openGauss,shark对于关键字的修改主要为:
1. 新增```columnstore```,```clustered```,```nonclustered```作为非保留关键字。
+2. 新增```save```,```tran```作为非保留关键字。
**表 1** SQL关键字
@@ -5863,6 +5864,15 @@ SQL里有保留字和非保留字之分。根据标准,保留字决不能用
| -
|
+SAVE
+ |
+非保留
+ |
+-
+ |
+-
+ |
+
SAVEPOINT
|
非保留
@@ -6926,6 +6936,15 @@ SQL里有保留字和非保留字之分。根据标准,保留字决不能用
| 保留
|
+TRAN
+ |
+非保留
+ |
+-
+ |
+-
+ |
+
TRANSACTION
|
非保留
diff --git "a/content/zh/docs/ExtensionReference/shark-\347\256\241\347\220\206\344\272\213\345\212\241.md" "b/content/zh/docs/ExtensionReference/shark-\347\256\241\347\220\206\344\272\213\345\212\241.md"
new file mode 100644
index 000000000..42188e1cd
--- /dev/null
+++ "b/content/zh/docs/ExtensionReference/shark-\347\256\241\347\220\206\344\272\213\345\212\241.md"
@@ -0,0 +1,101 @@
+# 管理事务
+
+事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。shark插件支持的事务控制命令有启动、设置保存点、提交、回滚事务。
+
+## 注意事项
+
+- 本章节只包含shark新增的语法,原openGauss的语法未做删除和修改。
+
+## 语法格式
+
+- 启动事务
+
+ 使用BEGIN语法启动事务。
+
+ ```
+ BEGIN { TRAN | TRANSACTION } [ { transaction_name } ];
+ ```
+
+- 设置保存点
+
+ 使用save语法为当前数据状态做一个标记,它允许将那些在它建立后执行的命令全部回滚,把事务的状态恢复到保存点所在的时刻。
+
+ 设置保存点。
+
+ ```
+ SAVE { TRAN | TRANSACTION } { savepoint_name };
+ ```
+
+ 回滚保存点。
+
+ ```
+ ROLLBACK { TRAN | TRANSACTION } { savepoint_name };
+ ```
+
+- 提交事务
+
+ 使用COMMIT完成提交事务的功能,即提交事务的所有操作。
+
+ ```
+ COMMIT [ { TRAN | TRANSACTION } [ transaction_name ] ];
+ ```
+
+- 回滚事务
+
+ 使用ROLLBACK回滚到某个保存点或回滚事务中的所有操作。带有savepoint_name参数时回滚到对应保存点,否则回滚所有操作。
+
+ ```
+ ROLLBACK { TRAN | TRANSACTION } [ savepoint_name ];
+ ```
+
+
+## 参数说明
+
+- **TRAN | TRANSACTION**
+
+ BEGIN格式中的可选关键字,没有实际作用。
+
+- **transaction_name**
+
+ 无实际意义,仅语法兼容。
+
+- **SAVE**
+
+ 设置保存点。
+
+- **savepoint_name**
+
+ 保存点名称,后续使用ROLLBACK命令时可以用。
+
+- **COMMIT**
+
+ 提交当前事务,让所有当前事务的更改为其他事务可见。
+
+- **ROLLBACK**
+
+ 回滚当前事务,撤销操作。
+
+## 示例
+
+```
+opengauss=# create table t1 (c1 int);
+CREATE TABLE
+opengauss=# begin tran;
+BEGIN
+opengauss=# insert into t1 values(1);
+INSERT 0 1
+opengauss=# save tran savepoint1;
+SAVEPOINT
+opengauss=# insert into t1 values(2);
+INSERT 0 1
+opengauss=# rollback tran savepoint1;
+ROLLBACK
+opengauss=# commit tran;
+COMMIT
+opengauss=# select * from t1;
+ c1
+----
+ 1
+(1 row)
+
+```
--
Gitee
|