Để sao chép dữ liệu từ bảng này sang bảng khác (có thể khác database), sử dụng câu lệnh INSERT INTO ... SELECT.
Cú pháp
INSERT INTO ten_database_b.ten_bang_moi (cot1, cot2, ...) SELECT cot1, cot2, ... FROM ten_database_a.ten_bang_goc;
Ví dụ minh họa
Bước 1: Tạo database và bảng nguồn
mysql> CREATE DATABASE bothinnodbandmyisam;
mysql> USE bothinnodbandmyisam;
mysql> CREATE TABLE ThongTinSinhVien (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Ten VARCHAR(10),
-> Tuoi INT
-> );
Chèn dữ liệu:
mysql> INSERT INTO ThongTinSinhVien(Ten, Tuoi) VALUES('Larry', 30);
mysql> INSERT INTO ThongTinSinhVien(Ten, Tuoi) VALUES('Mike', 26);
mysql> INSERT INTO ThongTinSinhVien(Ten, Tuoi) VALUES('Bob', 26);
mysql> INSERT INTO ThongTinSinhVien(Ten, Tuoi) VALUES('Carol', 24);
Bước 2: Tạo database và bảng đích
mysql> USE sample;
mysql> CREATE TABLE BangSinhVien_Sample (
-> SinhVienId INT NOT NULL AUTO_INCREMENT,
-> TenSinhVien VARCHAR(20),
-> TuoiSinhVien INT,
-> PRIMARY KEY(SinhVienId)
-> );
Thực hiện sao chép
mysql> INSERT INTO sample.BangSinhVien_Sample (TenSinhVien, TuoiSinhVien)
-> SELECT Ten, Tuoi FROM bothinnodbandmyisam.ThongTinSinhVien;
Query OK, 4 rows affected (0.23 sec)
Kiểm tra bảng đích:
mysql> SELECT * FROM BangSinhVien_Sample;
+-----------+-------------+------------+ | SinhVienId | TenSinhVien | TuoiSinhVien | +-----------+-------------+------------+ | 1 | Larry | 30 | | 2 | Mike | 26 | | 3 | Bob | 26 | | 4 | Carol | 24 | +-----------+------------+
Lưu ý: Số cột và kiểu dữ liệu trong SELECT phải khớp với cột đích. Cột AUTO_INCREMENT sẽ tự động sinh giá trị mới.