Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 19 additions & 30 deletions sql-statements/sql-statement-modify-column.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Query OK, 0 rows affected (0.09 sec)
{{< copyable "sql" >}}

```sql
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t1\G;
```

```
Expand All @@ -81,41 +81,30 @@ Create Table: CREATE TABLE `t1` (
1 row in set (0.00 sec)
```

{{< copyable "sql" >}}

```sql
ALTER TABLE t1 MODIFY col1 INT;
```

```
ERROR 1105 (HY000): unsupported modify column length 11 is less than origin 20
```

{{< copyable "sql" >}}

```sql
ALTER TABLE t1 MODIFY col1 BLOB;
```
## MySQL 兼容性

```
ERROR 1105 (HY000): unsupported modify column type 252 not match origin 8
```
* 不支持在单个 `ALTER TABLE` 语句修改多个列,例如:

{{< copyable "sql" >}}
```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;
```
* 不支持有损变更,以及部分数据类型的更改(包括整数改为字符串或 BLOB 格式等)。例如:

```
ERROR 1105 (HY000): can't run multi schema change
```
```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
```

## MySQL 兼容性
* 不支持修改 decimal 类型的精度。例如:

* 目前不支持使用单个 `ALTER TABLE` 语句进行多个修改。
* 仅支持特定类型的数据类型更改。例如,支持将 `INTEGER` 改为 `BIGINT`,但不支持将 `BIGINT` 改为 `INTEGER`。不支持将整数改为字符串格式或 BLOB 格式。
* 不支持修改 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
```

## 另请参阅

Expand Down