SHOW TABLE NEXT_ROW_ID
SHOW TABLE NEXT_ROW_IDは、以下のようなテーブルの特定の列の詳細を表示するために使用されます。
_tidb_rowid、サポートされているテーブルの場合、TiDB によって自動的に管理される非表示の行 ID 列です。- ユーザーによって作成された列は
AUTO_INCREMENT。 - ユーザーによって作成された列は
AUTO_RANDOM。 - ユーザーによって作成されたファイル数は
SEQUENCE。
あらすじ
- ShowTableNextRowIDStmt
ShowTableNextRowIDStmt ::=
"SHOW" "TABLE" (SchemaName ".")? TableName "NEXT_ROW_ID"
例
新しく作成されたテーブルの場合、行IDが割り当てられないため、 NEXT_GLOBAL_ROW_IDは1になります。
CREATE TABLE t(a int);
Query OK, 0 rows affected (0.06 sec)
SHOW TABLE t NEXT_ROW_ID;
+---------+------------+-------------+--------------------+
| DB_NAME | TABLE_NAME | COLUMN_NAME | NEXT_GLOBAL_ROW_ID |
+---------+------------+-------------+--------------------+
| test | t | _tidb_rowid | 1 |
+---------+------------+-------------+--------------------+
1 row in set (0.00 sec)
データがテーブルに書き込まれました。データを挿入する TiDBサーバーは、一度に 30000 個の ID を割り当ててキャッシュします。したがって、NEXT_GLOBAL_ROW_ID は現在 30001 です。ID の数はAUTO_ID_CACHEで制御されます。
INSERT INTO t VALUES (), (), ();
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0
SHOW TABLE t NEXT_ROW_ID;
+---------+------------+-------------+--------------------+
| DB_NAME | TABLE_NAME | COLUMN_NAME | NEXT_GLOBAL_ROW_ID |
+---------+------------+-------------+--------------------+
| test | t | _tidb_rowid | 30001 |
+---------+------------+-------------+--------------------+
1 row in set (0.00 sec)
MySQLとの互換性
このステートメントは、MySQL構文に対するTiDBの拡張機能です。