diff --git a/TOC.md b/TOC.md index a40cfc291a4ab..45acf58c23d64 100644 --- a/TOC.md +++ b/TOC.md @@ -280,6 +280,7 @@ + [`SHOW [FULL] PROCESSSLIST`](/sql-statements/sql-statement-show-processlist.md) + [`SHOW SCHEMAS`](/sql-statements/sql-statement-show-schemas.md) + [`SHOW STATUS`](/sql-statements/sql-statement-show-status.md) + + [`SHOW TABLE NEXT_ROW_ID`](/sql-statements/sql-statement-show-table-next-rowid.md) + [`SHOW TABLE REGIONS`](/sql-statements/sql-statement-show-table-regions.md) + [`SHOW TABLE STATUS`](/sql-statements/sql-statement-show-table-status.md) + [`SHOW [FULL] TABLES`](/sql-statements/sql-statement-show-tables.md) diff --git a/sql-statements/sql-statement-show-processlist.md b/sql-statements/sql-statement-show-processlist.md index 8de095efa0fe8..ca3101c0264ae 100644 --- a/sql-statements/sql-statement-show-processlist.md +++ b/sql-statements/sql-statement-show-processlist.md @@ -11,9 +11,9 @@ This statement lists the current sessions connected to the same TiDB server. The ## Synopsis -**ShowStmt:** +**ShowProcesslistStmt:** -![ShowStmt](/media/sqlgram/ShowStmt.png) +![ShowProcesslistStmt](/media/sqlgram/ShowProcesslistStmt.png) **OptFull:** diff --git a/sql-statements/sql-statement-show-table-next-rowid.md b/sql-statements/sql-statement-show-table-next-rowid.md new file mode 100644 index 0000000000000..7deb50fce042b --- /dev/null +++ b/sql-statements/sql-statement-show-table-next-rowid.md @@ -0,0 +1,63 @@ +--- +title: SHOW TABLE NEXT_ROW_ID +summary: Learn the usage of `SHOW TABLE NEXT_ROW_ID` in TiDB. +category: reference +--- + +# SHOW TABLE NEXT_ROW_ID + +`SHOW TABLE NEXT_ROW_ID` can be used to show the implicitly allocated global Row ID of a table. + +- For most of the tables, TiDB allocates a unique number for each record. The max allocated ID is persisted in the storage layer. Each TiDB server applies for a range of IDs on demand and caches them for ID allocation. This syntax can be used to query the next value to allocate, recorded in the storage layer. +- For the tables with integer primary key for optimization, TiDB maps the values in the primary key column to Row ID. Thus, `SHOW TABLE NEXT_ROW_ID` is meaningless for these tables. + +## Synopsis + +**ShowTableNextRowIDStmt:** + +![ShowTableNextRowIDStmt](/media/sqlgram/ShowTableNextRowIDStmt.png) + +**TableName:** + +![TableName](/media/sqlgram/TableName.png) + +## Examples + +{{< copyable "sql" >}} + +```sql +create table t(a int); +Query OK, 0 rows affected (0.06 sec) +``` + +```sql +# For newly created tables, NEXT_GLOBAL_ROW_ID is 1 because no Row ID is allocated. +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) +``` + +```sql +insert into t values (), (), (); +Query OK, 3 rows affected (0.02 sec) +Records: 3 Duplicates: 0 Warnings: 0 +``` + +```sql +show table t next_row_id; +# Data have been written to the table. The TiDB server that inserts the data allocates and caches 30000 IDs at once. Thus, NEXT_GLOBAL_ROW_ID is 30001 now. ++---------+------------+-------------+--------------------+ +| DB_NAME | TABLE_NAME | COLUMN_NAME | NEXT_GLOBAL_ROW_ID | ++---------+------------+-------------+--------------------+ +| test | t | _tidb_rowid | 30001 | ++---------+------------+-------------+--------------------+ +1 row in set (0.00 sec) +``` + +## MySQL compatibility + +`SHOW TABLE NEXT_ROW_ID` is specific to TiDB. diff --git a/sql-statements/sql-statement-show-table-status.md b/sql-statements/sql-statement-show-table-status.md index 4ad7d92358c2a..c800f140657ea 100644 --- a/sql-statements/sql-statement-show-table-status.md +++ b/sql-statements/sql-statement-show-table-status.md @@ -11,17 +11,17 @@ This statement shows various statistics about tables in TiDB. If the statistics ## Synopsis -**ShowStmt:** +**ShowTableStatusStmt:** -![ShowStmt](/media/sqlgram/ShowStmt.png) +![ShowTableStatusStmt](/media/sqlgram/ShowTableStatusStmt.png) -**ShowTargetFilterable:** +**FromOrIn:** -![ShowTargetFilterable](/media/sqlgram/ShowTargetFilterable.png) +![FromOrIn](/media/sqlgram/FromOrIn.png) -**ShowDatabaseNameOpt:** +**StatusTableName:** -![ShowDatabaseNameOpt](/media/sqlgram/ShowDatabaseNameOpt.png) +![StatusTableName](/media/sqlgram/StatusTableName.png) ## Examples diff --git a/sql-statements/sql-statement-show-warnings.md b/sql-statements/sql-statement-show-warnings.md index c655b9a326afb..8469e335a77a1 100644 --- a/sql-statements/sql-statement-show-warnings.md +++ b/sql-statements/sql-statement-show-warnings.md @@ -11,13 +11,9 @@ This statement shows a list of warnings that occurred for previously executed st ## Synopsis -**ShowStmt:** +**ShowWarningsStmt:** -![ShowStmt](/media/sqlgram/ShowStmt.png) - -**ShowTargetFilterable:** - -![ShowTargetFilterable](/media/sqlgram/ShowTargetFilterable.png) +![ShowWarningsStmt](/media/sqlgram/ShowWarningsStmt.png) ## Examples