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

我们可以在 ALTER 命令的帮助下修改列大小。让我们看看如何修改列大小。假设我们正在定义具有某种大小的任何列。在插入时,如果我们提供比我们定义的更大的尺寸,那么就会产生错误。

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

mysql> CREATE table ModifyColumnNameDemo
-> (
-> id int,
-> StudentName varchar(10)
-> );

创建表成功后,我们可以借助 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);
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');

以上记录已成功插入表中。我们可以在 SELECT 命令的帮助下显示上面插入的记录 -

mysql> SELECT * from ModifyColumnNameDemo;

以下是输出 -

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

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