From 0d8c8de1c062cc5a48a56e640683b88f4db97389 Mon Sep 17 00:00:00 2001 From: Lynn Date: Wed, 17 Jun 2020 12:46:20 +0800 Subject: [PATCH 1/2] sql-statements: update some statements --- sql-statements/sql-statement-add-column.md | 5 +- sql-statements/sql-statement-add-index.md | 49 ++++++++++++++++--- .../sql-statement-alter-database.md | 10 ++++ .../sql-statement-alter-instance.md | 6 +++ sql-statements/sql-statement-alter-table.md | 3 +- sql-statements/sql-statement-alter-user.md | 8 +++ sql-statements/sql-statement-change-column.md | 4 -- .../sql-statement-create-database.md | 4 -- sql-statements/sql-statement-drop-column.md | 5 +- sql-statements/sql-statement-drop-table.md | 1 + 10 files changed, 71 insertions(+), 24 deletions(-) diff --git a/sql-statements/sql-statement-add-column.md b/sql-statements/sql-statement-add-column.md index 3433f6dd86c9c..7e2f27de9905f 100644 --- a/sql-statements/sql-statement-add-column.md +++ b/sql-statements/sql-statement-add-column.md @@ -19,10 +19,6 @@ The `ALTER TABLE.. ADD COLUMN` statement adds a column to an existing table. Thi ![AlterTableSpec](/media/sqlgram/AlterTableSpec.png) -**ColumnKeywordOpt:** - -![ColumnKeywordOpt](/media/sqlgram/ColumnKeywordOpt.png) - **ColumnDef:** ![ColumnDef](/media/sqlgram/ColumnDef.png) @@ -76,6 +72,7 @@ mysql> SELECT * FROM t1; * Adding multiple columns at the same time is currently not supported. * Adding a new column and setting it to the `PRIMARY KEY` is not supported. * Adding a new column and setting it to `AUTO_INCREMENT` is not supported. +* There are limitations on adding generated columns, refer to: [generated column limitations](/generated-columns.md#limitations). ## See also diff --git a/sql-statements/sql-statement-add-index.md b/sql-statements/sql-statement-add-index.md index 7bddd00bccddc..55813971602b4 100644 --- a/sql-statements/sql-statement-add-index.md +++ b/sql-statements/sql-statement-add-index.md @@ -19,17 +19,53 @@ The `ALTER TABLE.. ADD INDEX` statement adds an index to an existing table. This ![AlterTableSpec](/media/sqlgram/AlterTableSpec.png) -**ColumnKeywordOpt:** +**Constraint:** -![ColumnKeywordOpt](/media/sqlgram/ColumnKeywordOpt.png) +![Constraint](/media/sqlgram/Constraint.png) -**ColumnDef:** +**ConstraintKeywordOpt:** -![ColumnDef](/media/sqlgram/ColumnDef.png) +![ConstraintKeywordOpt](/media/sqlgram/ConstraintKeywordOpt.png) -**ColumnPosition:** +**ConstraintElem:** -![ColumnPosition](/media/sqlgram/ColumnPosition.png) +![ConstraintElem](/media/sqlgram/ConstraintElem.png) + +**IndexNameAndTypeOpt:** + +![IndexNameAndTypeOpt](/media/sqlgram/IndexNameAndTypeOpt.png) + +**IndexPartSpecificationList:** + +![IndexPartSpecificationList](/media/sqlgram/IndexPartSpecificationList.png) + +**IndexPartSpecification:** + +![IndexPartSpecification](/media/sqlgram/IndexPartSpecification.png) + +**IndexOptionList:** + +![IndexOptionList](/media/sqlgram/IndexOptionList.png) + +**IndexOption:** + +![IndexOption](/media/sqlgram/IndexOption.png) + +**KeyOrIndex:** + +![KeyOrIndex](/media/sqlgram/KeyOrIndex.png) + +**IndexKeyTypeOpt:** + +![IndexKeyTypeOpt](/media/sqlgram/IndexKeyTypeOpt.png) + +**IndexInvisible:** + +![IndexInvisible](/media/sqlgram/IndexInvisible.png) + +**IndexTypeName:** + +![IndexTypeName](/media/sqlgram/IndexTypeName.png) ## Examples @@ -67,6 +103,7 @@ mysql> EXPLAIN SELECT * FROM t1 WHERE c1 = 3; ## MySQL compatibility * `FULLTEXT`, `HASH` and `SPATIAL` indexes are not supported. +* `VISIBLE/INVISIBLE` index is not supported. * Descending indexes are not supported (similar to MySQL 5.7). * Adding multiple indexes at the same time is currently not supported. * Adding the primary key constraint to a table is not supported by default. You can enable the feature by setting the `alter-primary-key` configuration item to `true`. For details, see [alter-primary-key](/tidb-configuration-file.md#alter-primary-key). diff --git a/sql-statements/sql-statement-alter-database.md b/sql-statements/sql-statement-alter-database.md index 26a84c0fd3955..8dddd491b7732 100644 --- a/sql-statements/sql-statement-alter-database.md +++ b/sql-statements/sql-statement-alter-database.md @@ -9,6 +9,16 @@ aliases: ['/docs/dev/reference/sql/statements/alter-database/'] `ALTER DATABASE` is used to specify or modify the default character set and collation of the current database. `ALTER SCHEMA` has the same effect as `ALTER DATABASE`. +## 语法图 + +**AlterDatabaseStmt:** + +![AlterDatabaseStmt](/media/sqlgram/AlterDatabaseStmt.png) + +**DatabaseOption:** + +![DatabaseOption](/media/sqlgram/DatabaseOption.png) + ## Examples ```sql diff --git a/sql-statements/sql-statement-alter-instance.md b/sql-statements/sql-statement-alter-instance.md index 3fe5bc0e7030d..3db5f9e84217e 100644 --- a/sql-statements/sql-statement-alter-instance.md +++ b/sql-statements/sql-statement-alter-instance.md @@ -19,8 +19,14 @@ When an error occurs during reloading, by default, this error message is returne ## Syntax diagram +**AlterInstanceStmt:** + ![AlterInstanceStmt](/media/sqlgram/AlterInstanceStmt.png) +**InstanceOption:** + +![InstanceOption](/media/sqlgram/InstanceOption.png) + ## Example {{< copyable "sql" >}} diff --git a/sql-statements/sql-statement-alter-table.md b/sql-statements/sql-statement-alter-table.md index 33caa16a7a97d..50c165b660cb9 100644 --- a/sql-statements/sql-statement-alter-table.md +++ b/sql-statements/sql-statement-alter-table.md @@ -61,8 +61,7 @@ mysql> EXPLAIN SELECT * FROM t1 WHERE c1 = 3; ## MySQL compatibility -* All of the data types except spatial types are supported. -* `FULLTEXT`, `HASH` and `SPATIAL` indexes are not supported. +* All of the data types except spatial types are supported. For other unsupported cases, refer to: [compatibility of DDL statements with MySQL](/mysql-compatibility.md#ddl). ## See also diff --git a/sql-statements/sql-statement-alter-user.md b/sql-statements/sql-statement-alter-user.md index d31e06733ad47..82e488a0f2f46 100644 --- a/sql-statements/sql-statement-alter-user.md +++ b/sql-statements/sql-statement-alter-user.md @@ -23,6 +23,14 @@ This statement changes an existing user inside the TiDB privilege system. In the ![UserSpec](/media/sqlgram/UserSpec.png) +**Username:** + +![Username](/media/sqlgram/Username.png) + +**AuthOption:** + +![AuthOption](/media/sqlgram/AuthOption.png) + ## Examples ```sql diff --git a/sql-statements/sql-statement-change-column.md b/sql-statements/sql-statement-change-column.md index ab37ee803540f..6863d780b9343 100644 --- a/sql-statements/sql-statement-change-column.md +++ b/sql-statements/sql-statement-change-column.md @@ -19,10 +19,6 @@ The `ALTER TABLE.. CHANGE COLUMN` statement changes a column on an existing tabl ![AlterTableSpec](/media/sqlgram/AlterTableSpec.png) -**ColumnKeywordOpt:** - -![ColumnKeywordOpt](/media/sqlgram/ColumnKeywordOpt.png) - **ColumnName:** ![ColumnName](/media/sqlgram/ColumnName.png) diff --git a/sql-statements/sql-statement-create-database.md b/sql-statements/sql-statement-create-database.md index e673e9bc95c2c..901418a6d895b 100644 --- a/sql-statements/sql-statement-create-database.md +++ b/sql-statements/sql-statement-create-database.md @@ -15,10 +15,6 @@ This statement creates a new database in TiDB. The MySQL terminology for 'databa ![CreateDatabaseStmt](/media/sqlgram/CreateDatabaseStmt.png) -**DatabaseSym:** - -![DatabaseSym](/media/sqlgram/DatabaseSym.png) - **IfNotExists:** ![IfNotExists](/media/sqlgram/IfNotExists.png) diff --git a/sql-statements/sql-statement-drop-column.md b/sql-statements/sql-statement-drop-column.md index 6a9e4d415c21f..6aaa631779f47 100644 --- a/sql-statements/sql-statement-drop-column.md +++ b/sql-statements/sql-statement-drop-column.md @@ -19,10 +19,6 @@ This statement drops a column from a specified table. `DROP COLUMN` is online in ![AlterTableSpec](/media/sqlgram/AlterTableSpec.png) -**ColumnKeywordOpt:** - -![ColumnKeywordOpt](/media/sqlgram/ColumnKeywordOpt.png) - **ColumnName:** ![ColumnName](/media/sqlgram/ColumnName.png) @@ -82,6 +78,7 @@ mysql> SELECT * FROM t1; ## MySQL compatibility * Dropping multiple columns in the same statement is not supported. +* Dropping primary key columns or index columns is not supported. ## See also diff --git a/sql-statements/sql-statement-drop-table.md b/sql-statements/sql-statement-drop-table.md index df76d3a672e9b..794f0b23f0cde 100644 --- a/sql-statements/sql-statement-drop-table.md +++ b/sql-statements/sql-statement-drop-table.md @@ -49,6 +49,7 @@ Query OK, 0 rows affected (0.23 sec) ## MySQL compatibility * Dropping a table with `IF EXISTS` does not return a warning when attempting to drop a table that does not exist. [Issue #7867](https://github.com/pingcap/tidb/issues/7867) +* Currently `RESTRICT` and `CASCADE` are only supported grammatically. ## See also From ba2bf478b42fb39550ef241d971fa444721bab3b Mon Sep 17 00:00:00 2001 From: Lynn Date: Fri, 19 Jun 2020 11:12:40 +0800 Subject: [PATCH 2/2] sql-statements: address comments --- sql-statements/sql-statement-add-column.md | 2 +- sql-statements/sql-statement-drop-table.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sql-statements/sql-statement-add-column.md b/sql-statements/sql-statement-add-column.md index 7e2f27de9905f..6ac5c4d6a9586 100644 --- a/sql-statements/sql-statement-add-column.md +++ b/sql-statements/sql-statement-add-column.md @@ -69,7 +69,7 @@ mysql> SELECT * FROM t1; ## MySQL compatibility -* Adding multiple columns at the same time is currently not supported. +* Adding multiple columns at the same time in a statement is currently not supported. * Adding a new column and setting it to the `PRIMARY KEY` is not supported. * Adding a new column and setting it to `AUTO_INCREMENT` is not supported. * There are limitations on adding generated columns, refer to: [generated column limitations](/generated-columns.md#limitations). diff --git a/sql-statements/sql-statement-drop-table.md b/sql-statements/sql-statement-drop-table.md index 794f0b23f0cde..bb3a693eac6f6 100644 --- a/sql-statements/sql-statement-drop-table.md +++ b/sql-statements/sql-statement-drop-table.md @@ -49,7 +49,7 @@ Query OK, 0 rows affected (0.23 sec) ## MySQL compatibility * Dropping a table with `IF EXISTS` does not return a warning when attempting to drop a table that does not exist. [Issue #7867](https://github.com/pingcap/tidb/issues/7867) -* Currently `RESTRICT` and `CASCADE` are only supported grammatically. +* Currently `RESTRICT` and `CASCADE` are only supported syntactically. ## See also