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

Sao chép hàng từ bảng này sang bảng khác trong MySQL

Sử dụng INSERT INTO bang_moi (cot1, cot2) SELECT cot1, cot2 FROM bang_cu WHERE dieu_kien để sao chép dữ liệu giữa các bảng cùng cấu trúc hoặc khác cấu trúc.

Ví dụ minh họa

Bảng nguồn:

mysql> CREATE TABLE DemoTable1879 (Id INT, Name VARCHAR(20));
mysql> INSERT INTO DemoTable1879 VALUES(101,'Chris Brown'),(102,'David Miller'),(103,'Adam Smith');

Bảng đích:

mysql> CREATE TABLE DemoTable1880 (ClientId INT, ClientName VARCHAR(20));

Sao chép Id 101 và 103:

mysql> INSERT INTO DemoTable1880(ClientId, ClientName)
    SELECT Id, Name FROM DemoTable1879 WHERE Id IN(101,103);

Kết quả bảng đích:

+----------+-------------+
| ClientId | ClientName  |
+----------+-------------+
|      101 | Chris Brown |
|      103 | Adam Smith  |
+----------+-------------+

Lưu ý: Số cột và kiểu dữ liệu SELECT phải khớp với INSERT. Dùng INSERT IGNORE hoặc ON DUPLICATE KEY UPDATE nếu có khóa trùng.