Skip to content

Commit

Permalink
Add explanation for auto_random ID allocation (#15960) (#16153)
Browse files Browse the repository at this point in the history
  • Loading branch information
ti-chi-bot authored Jan 11, 2024
1 parent 52642a7 commit 6007d22
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
4 changes: 4 additions & 0 deletions auto-random.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@ SHOW WARNINGS;
1 row in set (0.00 sec)
```

## ID 隐式分配规则

`AUTO_RANDOM` 列隐式分配的值和自增列类似,也遵循 session 变量 [`auto_increment_increment`](/system-variables.md#auto_increment_increment)[`auto_increment_offset`](/system-variables.md#auto_increment_offset) 的控制,其中隐式分配值的自增位 (ID) 满足等式 `(ID - auto_increment_offset) % auto_increment_increment == 0`

## 使用限制

目前在 TiDB 中使用 `AUTO_RANDOM` 有以下限制:
Expand Down
4 changes: 2 additions & 2 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ SET GLOBAL tidb_distsql_scan_concurrency = 10;
- 类型:整数型
- 默认值:`1`
- 范围:`[1, 65535]`
- 控制 `AUTO_INCREMENT` 自增值字段的自增步长。该变量常与 `auto_increment_offset` 一起使用。
- 控制 `AUTO_INCREMENT` 自增值字段的自增步长和 `AUTO_RANDOM` ID 的分配规则。该变量常与 [`auto_increment_offset`](#auto_increment_offset) 一起使用。

### `auto_increment_offset`

Expand All @@ -235,7 +235,7 @@ SET GLOBAL tidb_distsql_scan_concurrency = 10;
- 类型:整数型
- 默认值:`1`
- 范围:`[1, 65535]`
- 控制 `AUTO_INCREMENT` 自增值字段的初始值。该变量常与 `auto_increment_increment` 一起使用。示例如下:
- 控制 `AUTO_INCREMENT` 自增值字段的初始值和 `AUTO_RANDOM` ID 的分配规则。该变量常与 [`auto_increment_increment`](#auto_increment_increment) 一起使用。示例如下:

```sql
mysql> CREATE TABLE t1 (a int not null primary key auto_increment);
Expand Down

0 comments on commit 6007d22

Please sign in to comment.