diff --git a/sql-statements/sql-statement-add-column.md b/sql-statements/sql-statement-add-column.md index 9e78fbd57f318..84203e6774e4f 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 1d78682232cf3..f79de9e6676f3 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 fb8862d2fbcfa..0d83166b56560 100644 --- a/sql-statements/sql-statement-alter-database.md +++ b/sql-statements/sql-statement-alter-database.md @@ -9,6 +9,16 @@ aliases: ['/docs/stable/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 f34247c2dad70..9e627b98fbd41 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 392c853421209..302f65aa4bba7 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 f70f32114c0d4..22b11761113bb 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 56c8b91c72c28..ef04d74446bd7 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 b1273109a5145..bba040c79f516 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 d9ccb2f774c24..e84c614cff67c 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 f02c89a4524ec..1ddf58c4d61d7 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