Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion sql-statements/sql-statement-commit.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ Query OK, 0 rows affected (0.01 sec)

## MySQL 兼容性

* 对于 `COMMIT` 语句中的 `CompletionTypeWithinTransaction` 选项,目前只在语法上支持。
* 在 MySQL 中,除了有多个 primary 的群组复制以外,`COMMIT` 语句通常不会导致错误。相比之下,TiDB 使用乐观并发控制,冲突可能导致 `COMMIT` 返回错误。
* 默认情况下,`UNIQUE` 和 `PRIMARY KEY` 约束检查将延迟直至语句提交。可通过设置 `tidb_constraint_check_in_place=TRUE` 来改变该行为。
* TiDB 对于 `CompletionTypeWithinTransaction` 仅有语法上的支持。即不支持事务提交后,关闭连接或继续开启一个新事务的提交选项。

## 另请参阅

Expand Down
4 changes: 0 additions & 4 deletions sql-statements/sql-statement-execute.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ aliases: ['/docs-cn/dev/reference/sql/statements/execute/']

![ExecuteStmt](/media/sqlgram/ExecuteStmt.png)

**Identifier:**

![Identifier](/media/sqlgram/Identifier.png)

## 示例

{{< copyable "sql" >}}
Expand Down
14 changes: 13 additions & 1 deletion sql-statements/sql-statement-insert.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ aliases: ['/docs-cn/dev/reference/sql/statements/insert/']

![InsertIntoStmt](/media/sqlgram/InsertIntoStmt.png)

**TableOptimizerHints**

![TableOptimizerHints](/media/sqlgram/TableOptimizerHints.png)

**PriorityOpt:**

![PriorityOpt](/media/sqlgram/PriorityOpt.png)
Expand All @@ -31,16 +35,24 @@ aliases: ['/docs-cn/dev/reference/sql/statements/insert/']

![TableName](/media/sqlgram/TableName.png)

**PartitionNameListOpt:**

![PartitionNameListOpt](/media/sqlgram/PartitionNameListOpt.png)

**InsertValues:**

![InsertValues](/media/sqlgram/InsertValues.png)

**OnDuplicateKeyUpdate:**

![OnDuplicateKeyUpdate](/media/sqlgram/OnDuplicateKeyUpdate.png)

## 示例

{{< copyable "sql" >}}

```sql
CREATE TABLE t1 (a int);
CREATE TABLE t1 (a INT);
```

```
Expand Down
4 changes: 4 additions & 0 deletions sql-statements/sql-statement-replace.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ aliases: ['/docs-cn/dev/reference/sql/statements/replace/']

![TableName](/media/sqlgram/TableName.png)

**PartitionNameListOpt:**

![PartitionNameListOpt](/media/sqlgram/PartitionNameListOpt.png)

**InsertValues:**

![InsertValues](/media/sqlgram/InsertValues.png)
Expand Down
8 changes: 4 additions & 4 deletions sql-statements/sql-statement-rollback.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ aliases: ['/docs-cn/dev/reference/sql/statements/rollback/']

## 语法图

**Statement:**
**RollbackStmt:**

![Statement](/media/sqlgram/Statement.png)
![RollbackStmt](/media/sqlgram/RollbackStmt.png)

## 示例

{{< copyable "sql" >}}

```sql
CREATE TABLE t1 (a int NOT NULL PRIMARY KEY);
CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY);
```

```
Expand Down Expand Up @@ -69,7 +69,7 @@ Empty set (0.01 sec)

## MySQL 兼容性

`ROLLBACK` 语句与 MySQL 完全兼容。如有任何兼容性差异,请在 GitHub 上提交 [issue](/report-issue.md)。
`ROLLBACK` 语句与 MySQL 不完全兼容,TiDB 对任何 `CompletionTypeWithinTransaction` 仅有语法上的支持,即不支持事务回滚后,关闭连接或继续开启一个新事务的回滚选项。如有其他兼容性差异,请在 GitHub 上提交 [issue](/report-issue.md)。

## 另请参阅

Expand Down
9 changes: 5 additions & 4 deletions sql-statements/sql-statement-set-transaction.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ aliases: ['/docs-cn/dev/reference/sql/statements/set-transaction/']
{{< copyable "sql" >}}

```sql
SHOW SESSION VARIABLES like 'transaction_isolation';
SHOW SESSION VARIABLES LIKE 'transaction_isolation';
```

```
Expand All @@ -53,7 +53,7 @@ Query OK, 0 rows affected (0.00 sec)
{{< copyable "sql" >}}

```sql
SHOW SESSION VARIABLES like 'transaction_isolation';
SHOW SESSION VARIABLES LIKE 'transaction_isolation';
```

```
Expand All @@ -78,7 +78,7 @@ Query OK, 0 rows affected (0.00 sec)
{{< copyable "sql" >}}

```sql
SHOW SESSION VARIABLES like 'transaction_isolation';
SHOW SESSION VARIABLES LIKE 'transaction_isolation';
```

```
Expand All @@ -94,7 +94,8 @@ SHOW SESSION VARIABLES like 'transaction_isolation';

* TiDB 支持仅在语法中将事务设置为只读的功能。
* 不支持隔离级别 `READ-UNCOMMITTED` 和 `SERIALIZABLE`。
* 隔离级别 `REPEATABLE-READ` 在技术上属于快照隔离(Snapshot Isolation)。在 TiDB 中称为 `REPEATABLE-READ` 是为了和 MySQL 保持一致。
* 通过快照隔离 (Snapshot Isolation) 技术,实现乐观事务的 `REPEATABLE-READ` 隔离级别,和 MySQL 兼容。
* 在悲观事务中,TiDB 支持与 MySQL 兼容的 `REPEATABLE-READ` 和 `READ-COMMITTED` 两种隔离级别。具体描述详见 [Isolation Levels](/transaction-isolation-levels.md)。

## 另请参阅

Expand Down
9 changes: 7 additions & 2 deletions sql-statements/sql-statement-start-transaction.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ aliases: ['/docs-cn/dev/reference/sql/statements/start-transaction/']

# START TRANSACTION

`START TRANSACTION` 语句用于在 TiDB 内部启动新事务。它类似于语句 `BEGIN` 和 `SET autocommit = 0`
`START TRANSACTION` 语句用于在 TiDB 内部启动新事务。它类似于语句 `BEGIN`。

在没有 `START TRANSACTION` 语句的情况下,每个语句都会在各自的事务中自动提交,这样可确保 MySQL 兼容性。

Expand Down Expand Up @@ -61,7 +61,12 @@ Query OK, 0 rows affected (0.01 sec)

## MySQL 兼容性

`START TRANSACTION` 语句与 MySQL 完全兼容。如有任何兼容性差异,请在 GitHub 上提交 [issue](/report-issue.md)。
`START TRANSACTION` 语句与 MySQL 不完全兼容。

* `START TRANSACTION` 相当于 MySQL 的 `START TRANSACTION WITH CONSISTENT SNAPSHOT`,即 `START TRANSACTION` 后执行了一个从 InnoDB 任意表读数据的 `SELECT` 语句(非 `SELECT FOR UPDATE`)。
* `READ ONLY` 及其扩展选项都都只是语法兼容,其效果等同于 `START TRANSACTION`。

如有任何其他兼容性差异,请在 GitHub 上提交 [issue](/report-issue.md)。

## 另请参阅

Expand Down