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

Cách di chuyển dữ liệu giữa hai bảng với cột khác nhau trong các database MySQL khác nhau?


Để thực hiện việc này, bạn cần sử dụng câu lệnh INSERT SELECT. Cú pháp như sau:

INSERT INTO yourDatabaseName1.yourTableName1(yourColumnName1,yourColumnName2,....N) 
SELECT yourColumnName1,yourColumnName2,....N 
FROM yourdatabaseName2.yourTableName2;

Ở đây tôi sử dụng hai database:

  • sample
  • test

Tạo bảng đầu tiên trong database "test":

<send>

mysql> use test; 
Database changed 
mysql> create table send 
    -> ( 
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    -> Name varchar(20) 
    -> ); 
Query OK, 0 rows affected (1.19 sec)

Chèn bản ghi vào bảng đầu tiên:

mysql> insert into send(Name) values('John'); 
Query OK, 1 row affected (0.20 sec) 
mysql> insert into send(Name) values('Carol'); 
Query OK, 1 row affected (0.40 sec)

Hiển thị bản ghi từ bảng:

mysql> select * from send;

Kết quả:

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

Tạo bảng thứ hai trong database "sample":

<receive>

mysql> use sample; 
Database changed 
mysql> create table receive 
    -> ( 
    -> UserId int, 
    -> UserName varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.59 sec)

Bảng "receive" chưa có bản ghi nào. Di chuyển dữ liệu giữa 2 bảng với cột khác nhau trong các database khác nhau:

mysql> insert into sample.receive(UserId,UserName) 
-> select Id,Name from test.send; 
Query OK, 2 rows affected (0.21 sec) 
Records: 2 Duplicates: 0 Warnings: 0

Hiển thị bản ghi từ bảng sample.receive:

mysql> select * from receive;

Kết quả cho thấy dữ liệu đã được di chuyển thành công:

+--------+----------+ 
| UserId | UserName | 
+--------+----------+ 
| 1      | John     | 
| 2      | Carol    | 
+--------+----------+ 
2 rows in set (0.00 sec)