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

Làm thế nào để thay đổi vị trí cột của bảng MySQL mà không làm mất dữ liệu cột?

Bạn có thể thay đổi vị trí cột của bảng MySQL mà không làm mất dữ liệu với sự trợ giúp của lệnh ALTER TABLE. Cú pháp như sau -

ALTER TABLE yourTableName MODIFY yourColumnName1 data type AFTER yourColumnName2;

Để hiểu khái niệm trên, chúng ta hãy tạo một bảng. Truy vấn để tạo một bảng với một số cột như sau -

mysql> create table changeColumnPositionDemo
−> (
−> StudentId int,
−> StudentAddress varchar(200),
−> StudentAge int,
−> StudentName varchar(200)
−> );
Query OK, 0 rows affected (0.72 sec)

Hãy để chúng tôi chèn một số dữ liệu trong bảng. Truy vấn để chèn bản ghi như sau -.

mysql> insert into changeColumnPositionDemo values(101,'US',23,'Johnson');
Query OK, 1 row affected (0.13 sec)

mysql> insert into changeColumnPositionDemo values(102,'UK',20,'John');
Query OK, 1 row affected (0.19 sec)

mysql> insert into changeColumnPositionDemo values(103,'US',22,'Carol');
Query OK, 1 row affected (0.39 sec)

mysql> insert into changeColumnPositionDemo values(104,'UK',19,'Sam');
Query OK, 1 row affected (0.18 sec)

Bây giờ bạn có thể hiển thị tất cả các bản ghi với sự trợ giúp của câu lệnh select. Truy vấn như sau -

mysql> select *from changeColumnPositionDemo;

Sau đây là kết quả -

+-----------+----------------+------------+-------------+
| StudentId | StudentAddress | StudentAge | StudentName |
+-----------+----------------+------------+-------------+
|       101 | U              | 23         | Johnson     |
|       102 | UK             | 20         | John        |
|       103 | US             | 22         | Carol       |
|       104 | UK             | 19         | Sam         |
+-----------+----------------+------------+-------------+
4 rows in set (0.00 sec)

Đây là truy vấn để thay đổi vị trí cột mà không làm mất dữ liệu. Chúng tôi đang chuyển cột “StudentAddress” thành sau cột “StudentAge” -

mysql> ALTER TABLE changeColumnPositionDemo MODIFY StudentAddress varchar(200) AFTER StudentAge;
Query OK, 0 rows affected (2.27 sec)
Records: 0 Duplicates: 0 Warnings: 0

Ở trên, chúng tôi đã đặt cột StudentAddress sau tên cột StudentAge.

Sau đây là câu truy vấn để kiểm tra xem hai cột trên có bị thay đổi hay không mà không làm mất dữ liệu -

mysql> select *from changeColumnPositionDemo;

Sau đây là kết quả -

+-----------+------------+----------------+-------------+
| StudentId | StudentAge | StudentAddress | StudentName |
+-----------+------------+----------------+-------------+
|       101 | 23         | US             | Johnson     |
|       102 | 20         | UK             | John        |
|       103 | 22         | US             | Carol       |
|       104 | 19         | UK             | Sam         |
+-----------+------------+----------------+-------------+
4 rows in set (0.00 sec)