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

Sao chép giá trị cột này sang cột khác với INSERT SELECT trong 1 truy vấn MySQL

Sử dụng INSERT INTO ... SELECT để sao chép dữ liệu từ cột của bảng này sang bảng khác trong một câu lệnh.

Bảng nguồn

mysql> CREATE TABLE DemoTable1(
    Name VARCHAR(100),
    Gender ENUM('MALE','FEMALE')
); 
Query OK, 0 rows affected (0.50 sec)

mysql> INSERT INTO DemoTable1 VALUES('Chris','Male'), ('Emma','Female'); 
Query OK, 2 rows affected

Bảng đích

mysql> CREATE TABLE DemoTable2(EmployeeGender VARCHAR(100)); 
Query OK, 0 rows affected (0.47 sec)

Sao chép cột Gender sang bảng 2

mysql> INSERT INTO DemoTable2(EmployeeGender) 
SELECT Gender FROM DemoTable1; 
Query OK, 2 rows affected (0.15 sec)

Kết quả:

+----------------+
| EmployeeGender |
+----------------+
| MALE           |
| FEMALE         |
+----------------+

Ưu điểm: Thực hiện trong 1 câu lệnh, atomic, hiệu năng tốt hơn so với SELECT rồi INSERT vòng lặp ở ứng dụng.

Mở rộng: Sao chép nhiều cột: INSERT INTO table2(colA, colB) SELECT colX, colY FROM table1 WHERE condition.