如何在 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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告