diff --git a/sql-statements/sql-statement-add-column.md b/sql-statements/sql-statement-add-column.md index 3433f6dd86c9c..6ac5c4d6a9586 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) @@ -73,9 +69,10 @@ 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). ## See also diff --git a/sql-statements/sql-statement-add-index.md b/sql-statements/sql-statement-add-index.md index b479a15d5766a..be9ca304db760 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 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 925e750d0682d..6c1200214cb6b 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 c12d21100a7a9..5f9062545c588 100644 --- a/sql-statements/sql-statement-drop-table.md +++ b/sql-statements/sql-statement-drop-table.md @@ -47,6 +47,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 syntactically. ## See also