Computer >> Máy Tính >  >> Lập trình >> MySQL

Có cách nào để chuyển đổi trường Integer thành Varchar mà không làm mất dữ liệu trong MySQL không?

Bạn có thể sử dụng lệnh ALTER để chuyển đổi Integer thành Varchar. Đầu tiên chúng ta hãy tạo một bảng

mysql> create table DemoTable
(
   UserId int,
   UserFirstName varchar(20),
   UserLastName varchar(20),
   UserAge int
);
Query OK, 0 rows affected (0.73 sec)

Bây giờ hãy kiểm tra mô tả của bảng bằng lệnh DESC:

mysql> desc DemoTable;

Điều này sẽ tạo ra kết quả sau -

+---------------+-------------+------+-----+---------+-------+
| Field         | Type        | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| UserId        | int(11)     | YES  |     | NULL    |       |
| UserFirstName | varchar(20) | YES  |     | NULL    |       |
| UserLastName  | varchar(20) | YES  |     | NULL    |       |
| UserAge       | int(11)     | YES  |     | NULL    |       |
+---------------+-------------+------+-----+---------+-------+
4 rows in set (0.17 sec)

Bây giờ bạn có thể thay đổi kiểu dữ liệu số nguyên thành varchar mà không làm mất dữ liệu:

mysql> alter table DemoTable change UserId UserId varchar(20);
Query OK, 0 rows affected (1.35 sec)
Records: 0 Duplicates: 0 Warnings: 0

Kiểm tra mô tả bảng:

mysql> desc DemoTable;

Điều này sẽ tạo ra kết quả sau -

+---------------+-------------+------+-----+---------+-------+
| Field         | Type        | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| UserId        | varchar(20) | YES  |     | NULL    |       |
| UserFirstName | varchar(20) | YES  |     | NULL    |       |
| UserLastName  | varchar(20) | YES  |     | NULL    |       |
| UserAge       | int(11)     | YES  |     | NULL    |       |
+---------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)