From 016496fc3ed929a2be34f84e1d76f28a9416ba3e Mon Sep 17 00:00:00 2001 From: tangenta Date: Mon, 25 May 2020 16:19:08 +0800 Subject: [PATCH 1/2] update sql-statement-modify-column.md --- sql-statements/sql-statement-modify-column.md | 39 +++++++------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/sql-statements/sql-statement-modify-column.md b/sql-statements/sql-statement-modify-column.md index eda8d099cbb3..28bae04dab63 100644 --- a/sql-statements/sql-statement-modify-column.md +++ b/sql-statements/sql-statement-modify-column.md @@ -67,7 +67,7 @@ Query OK, 0 rows affected (0.09 sec) {{< copyable "sql" >}} ```sql -SHOW CREATE TABLE t1; +SHOW CREATE TABLE t1\G; ``` ``` @@ -81,42 +81,31 @@ Create Table: CREATE TABLE `t1` ( 1 row in set (0.00 sec) ``` -{{< copyable "sql" >}} +## MySQL 兼容性 -```sql -ALTER TABLE t1 MODIFY col1 INT; -``` +* 不支持在单个 `ALTER TABLE` 语句修改多个列,例如: -``` -ERROR 1105 (HY000): unsupported modify column length 11 is less than origin 20 +```sql +ALTER TABLE t1 MODIFY col1 BIGINT, MODIFY id BIGINT NOT NULL; +ERROR 1105 (HY000): Unsupported multi schema change ``` -{{< copyable "sql" >}} +* 不支持有损变更,以及部分数据类型的更改(包括整数改为字符串或 BLOB 格式等)。例如: ```sql -ALTER TABLE t1 MODIFY col1 BLOB; -``` - -``` -ERROR 1105 (HY000): unsupported modify column type 252 not match origin 8 +CREATE TABLE t1 (col1 BIGINT); +ALTER TABLE t1 MODIFY col1 INT; +ERROR 8200 (HY000): Unsupported modify column length 11 is less than origin 20 ``` -{{< copyable "sql" >}} +* 不支持修改 decimal 类型的精度。例如: ```sql -ALTER TABLE t1 MODIFY col1 BIGINT, MODIFY id BIGINT NOT NULL; -``` - -``` -ERROR 1105 (HY000): can't run multi schema change +CREATE TABLE t (a DECIMAL(5, 3)); +ALTER TABLE t MODIFY COLUMN a DECIMAL(6, 3); +ERROR 8200 (HY000): Unsupported modify column: can't change decimal column precision ``` -## MySQL 兼容性 - -* 目前不支持使用单个 `ALTER TABLE` 语句进行多个修改。 -* 仅支持特定类型的数据类型更改。例如,支持将 `INTEGER` 改为 `BIGINT`,但不支持将 `BIGINT` 改为 `INTEGER`。不支持将整数改为字符串格式或 BLOB 格式。 -* 不支持修改 decimal 类型的精度。 - ## 另请参阅 * [CREATE TABLE](/sql-statements/sql-statement-create-table.md) From e24d77a1396668bb1277d36fa17d8c8224d0d521 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 25 May 2020 21:15:30 +0800 Subject: [PATCH 2/2] refine format --- sql-statements/sql-statement-modify-column.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/sql-statements/sql-statement-modify-column.md b/sql-statements/sql-statement-modify-column.md index 28bae04dab63..8b42c800a3e9 100644 --- a/sql-statements/sql-statement-modify-column.md +++ b/sql-statements/sql-statement-modify-column.md @@ -85,26 +85,26 @@ Create Table: CREATE TABLE `t1` ( * 不支持在单个 `ALTER TABLE` 语句修改多个列,例如: -```sql -ALTER TABLE t1 MODIFY col1 BIGINT, MODIFY id BIGINT NOT NULL; -ERROR 1105 (HY000): Unsupported multi schema change -``` + ```sql + ALTER TABLE t1 MODIFY col1 BIGINT, MODIFY id BIGINT NOT NULL; + ERROR 1105 (HY000): Unsupported multi schema change + ``` * 不支持有损变更,以及部分数据类型的更改(包括整数改为字符串或 BLOB 格式等)。例如: -```sql -CREATE TABLE t1 (col1 BIGINT); -ALTER TABLE t1 MODIFY col1 INT; -ERROR 8200 (HY000): Unsupported modify column length 11 is less than origin 20 -``` + ```sql + CREATE TABLE t1 (col1 BIGINT); + ALTER TABLE t1 MODIFY col1 INT; + ERROR 8200 (HY000): Unsupported modify column length 11 is less than origin 20 + ``` * 不支持修改 decimal 类型的精度。例如: -```sql -CREATE TABLE t (a DECIMAL(5, 3)); -ALTER TABLE t MODIFY COLUMN a DECIMAL(6, 3); -ERROR 8200 (HY000): Unsupported modify column: can't change decimal column precision -``` + ```sql + CREATE TABLE t (a DECIMAL(5, 3)); + ALTER TABLE t MODIFY COLUMN a DECIMAL(6, 3); + ERROR 8200 (HY000): Unsupported modify column: can't change decimal column precision + ``` ## 另请参阅