Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thay đổi độ dài cột VARCHAR trong MySQL (ALTER TABLE MODIFY)

Cú pháp

ALTER TABLE ten_bang MODIFY COLUMN ten_cot VARCHAR(do_dai_moi) [NOT NULL];

Ví dụ: Từ VARCHAR(30) sang VARCHAR(100)

Trước khi thay đổi

mysql> DESC syntaxOfAlterCommandDemo;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| UserId       | int(11)     | YES  |     | NULL    |       |
| UserName     | varchar(30) | YES  |     | NULL    |       |
| UserAge      | int(11)     | YES  |     | NULL    |       |
| UserCityName | varchar(50) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

Thực thi ALTER

mysql> ALTER TABLE syntaxOfAlterCommandDemo 
    -> MODIFY COLUMN UserName VARCHAR(100) NOT NULL;

Sau khi thay đổi

+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| UserId       | int(11)      | YES  |     | NULL    |       |
| UserName     | varchar(100) | NO   |     | NULL    |       |
| UserAge      | int(11)      | YES  |     | NULL    |       |
| UserCityName | varchar(50)  | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

Lưu ý quan trọng

  • Mở rộng (tăng độ dài): An toàn, nhanh, không mất dữ liệu
  • Thu hẹp (giảm độ dài): RỦI RO - dữ liệu dài hơn bị cắt mất (truncate) với warning
  • NOT NULL: Chỉ thêm được nếu cột không có giá trị NULL
  • Character set/collation: Giữ nguyên nếu không chỉ định

Các thay đổi khác cùng lúc