如何在 MySQL 表中修改列的大小?


我们可以借助 ALTER 命令修改列的大小。让我们看看如何修改列的大小。假设我们定义任何列时指定了某个大小。在插入数据时,如果我们提供的大小比我们定义的大,则会生成错误。

在修改大小的同时可以减少上述问题。为了更好地理解,我们可以使用 CREATE 命令创建一个表:

mysql> CREATE table ModifyColumnNameDemo
-> (
-> id int,
-> StudentName varchar(10)
-> );
Query OK, 0 rows affected (0.45 sec)

成功创建表后,我们可以使用 INSERT 命令将记录插入表中。

mysql> INSERT into ModifyColumnNameDemo values(1,'CarolTaylor');
ERROR 1406 (22001): Data too long for column 'StudentName' at row 1

从上面的查询中,我们得到了错误 1406。在修改列时可以解决此错误。我们可以为此使用 ALTER 命令。语法如下:

ALTER table yourTableName modify column_name;

应用上述查询将列的大小修改为某个大小:

mysql> ALTER table ModifyColumnNameDemo modify StudentName varchar(200);
Query OK, 0 rows affected (1.54 sec)
Records: 0 Duplicates: 0 Warnings: 0

之后,我们可以检查列名“StudentName”的大小为 200。查询如下:

mysql> DESC ModifyColumnNameDemo;

输出如下:

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
|id | int(11) | YES          |      | NULL|         |
| StudentName | varchar(200) | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
2 rows in set (0.04 sec)

查看上面 StudentName 列,大小已更改为 200。现在我们可以将记录插入表中,并且不会出现任何错误。让我们检查一下:

mysql> INSERT into ModifyColumnNameDemo values(1,'CarolTaylor');
Query OK, 1 row affected (0.14 sec)

上述记录已成功插入表中。我们可以借助 SELECT 命令显示上面插入的记录:

mysql> SELECT * from ModifyColumnNameDemo;

输出如下:

| id | StudentName |
+------+-------------+
| 1 | CarolTaylor|
+------+-------------+
1 row in set (0.00 sec)

查看上面的输出,修改列的大小后,记录已成功插入。

更新于: 2020-06-24

681 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告