如何更改 MySQL 表列的資料型別?


你可以使用 modify 命令來進行更改。我們先建立一張表。

mysql> create table DemoTable
(
   StudentId varchar(200) not null,
   StudentName varchar(20),
   StudentAge int,
   StudentAddress varchar(20),
   StudentCountryName varchar(20)
);
Query OK, 0 rows affected (0.73 sec)

現在檢查表說明。

mysql> desc DemoTable;

這將生成以下輸出 −

+--------------------+--------------+------+-----+---------+-------+
| Field              | Type         | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| StudentId          | varchar(200) | NO   |     | NULL    |       |
| StudentName        | varchar(20)  | YES  |     | NULL    |       |
| StudentAge         | int(11)      | YES  |     | NULL    |       |
| StudentAddress     | varchar(20)  | YES  |     | NULL    |       |
| StudentCountryName | varchar(20)  | YES  |     | NULL    |       |
+--------------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

以下是將資料型別從 varchar 更改為 BIGINT 的查詢 −

mysql> alter table DemoTable modify StudentId BIGINT(10) UNSIGNED NOT NULL DEFAULT 0;
Query OK, 0 rows affected (1.51 sec)
Records: 0 Duplicates : 0 Warnings : 0

上面,我們已將列 ‘StudentId’ 的資料型別從 varchar(200) 更改為 BIGINT(10)。讓我們再次檢查表說明。

mysql> desc DemoTable;

這將生成以下輸出 −

+--------------------+---------------------+------+-----+---------+-------+
| Field              | Type                | Null | Key | Default | Extra |
+--------------------+---------------------+------+-----+---------+-------+
| StudentId          | bigint(10) unsigned | NO   |     | 0       |       |
| StudentName        | varchar(20)         | YES  |     | NULL    |       |
| StudentAge         | int(11)             | YES  |     | NULL    |       |
| StudentAddress     | varchar(20)         | YES  |     | NULL    |       | 
| StudentCountryName | varchar(20)         | YES  |     | NULL    |       |
+--------------------+---------------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

更新於: 30-Jul-2019

136 次瀏覽

開啟你的職業生涯

完成課程即可獲得認證

開始
廣告