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.