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

Mở rộng kích thước VARCHAR trong MySQL có ảnh hưởng dữ liệu không?

Không. Việc tăng kích thước cột VARCHAR (ví dụ từ VARCHAR(8) lên VARCHAR(100)) không làm mất hoặc thay đổi dữ liệu hiện có trong cột đó.

Ví dụ minh họa

Tạo bảng VARCHAR(8):

mysql> create table DemoTable( 
    Name varchar(8) 
);

Chèn dữ liệu:

mysql> insert into DemoTable values('John');
mysql> insert into DemoTable values('Robert');
mysql> insert into DemoTable values('Mike');
mysql> insert into DemoTable values('Sam');

Kiểm tra cấu trúc bảng:

mysql> desc DemoTable;

Kết quả:

+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Name  | varchar(8) | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+

Mở rộng VARCHAR(8) → VARCHAR(100)

mysql> alter table DemoTable change Name Name varchar(100);

Kiểm tra lại cấu trúc:

mysql> desc DemoTable;

Kết quả:

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

Dữ liệu bên trong hoàn toàn không bị ảnh hưởng.

⚠️ Cảnh báo quan trọng: Ngược lại, GIẢM kích thước VARCHAR (ví dụ VARCHAR(100) → VARCHAR(8)) CÓ THỂ CẮT MẤT DỮ LIỆU nếu dữ liệu hiện tại dài hơn kích thước mới. MySQL sẽ cảnh báo (Warning) và cắt bớt phần thừa.

Best practice: Luôn backup dữ liệu trước khi ALTER TABLE giảm kích thước cột.