我们可以在 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)
看上面的输出,修改列的大小后,记录插入成功。