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

Di chuyển các hàng từ bảng này sang bảng khác trong MySQL?

Bạn có thể di chuyển các hàng từ bảng này sang bảng khác với sự trợ giúp của câu lệnh INSERT INTO SELECT.

Cú pháp như sau -

insert into yourDestinationTableName select *from yourOriginalTable where someCondition

Để hiểu cú pháp trên. hãy để chúng tôi tạo một bảng. Sau đây là truy vấn để tạo bảng -

mysql> create table StudentTable
   −> (
      −> Id int,
      −> Name varchar(100)
   −> );
Query OK, 0 rows affected (0.65 sec)

Bây giờ, tôi sẽ tạo bảng thứ hai. Truy vấn như sau -

mysql> create table Employee
   −> (
      −> EmployeeId int
      −> ,
      −> EmployeeName varchar(100)
   −> );
Query OK, 0 rows affected (0.54 sec)

Chèn một số bản ghi trong bảng Nhân viên. Truy vấn để chèn bản ghi như sau -

mysql> insert into Employee values(1,'Carol');
Query OK, 1 row affected (0.18 sec)

mysql> insert into Employee values(2,'John');
Query OK, 1 row affected (0.16 sec)

mysql> insert into Employee values(3,'Johnson');
Query OK, 1 row affected (0.11 sec)

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

mysql> select *from Employee;

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

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
|          1 | Carol        |
|          2 | John         |
|          3 | Johnson      |
+------------+--------------+
3 rows in set (0.00 sec)

Thực hiện cú pháp mà chúng ta đã thảo luận ở phần đầu để di chuyển hàng trong bảng khác. Truy vấn dưới đây di chuyển hàng từ bảng Nhân viên sang Bảng Sinh viên -

mysql> insert into StudentTable select *from Employee where EmployeeId = 3 and EmployeeName = 'Johnson';
Query OK, 1 row affected (0.17 sec)
Records: 1 Duplicates: 0 Warnings: 0

Bây giờ, bạn có thể kiểm tra xem hàng có trong bảng thứ hai ‘StudentTable’ hay không. Truy vấn như sau -

mysql> select *from StudentTable;

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

+------+---------+
| Id   |    Name |
+------+---------+
| 3    | Johnson |
+------+---------+
1 row in set (0.00 sec)

Nhìn vào kết quả đầu ra mẫu ở trên, chúng ta đã chuyển hàng từ bảng này sang bảng khác. Để di chuyển tất cả các hàng, bạn chỉ cần loại bỏ điều kiện "ở đâu". Truy vấn như sau -

mysql> insert into StudentTable select *from Employee;
Query OK, 3 rows affected (0.15 sec)
Records: 3 Duplicates: 0 Warnings: 0

Truy vấn hiển thị tất cả các bản ghi được cập nhật trong StudentTable -

mysql> select *from StudentTable;

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

+------+---------+
| Id   | Name    |
+------+---------+
| 1    | Carol   |
| 2    | John    |
| 3    | Johnson |
+------+---------+
3 rows in set (0.00 sec)