บทความนี้สาธิตการ INSERT ... SELECT ที่รวมค่าคงที่ (Constant) เข้ากับคอลัมน์จากตารางอื่น เพื่อสร้างข้อมูลใหม่ในตารางปลายทาง
ตารางต้นทาง (DemoTable1)
mysql> CREATE TABLE DemoTable1 (Name VARCHAR(100));
mysql> INSERT INTO DemoTable1 VALUES('John'), ('Chris'), ('Robert');
ตารางปลายทาง (DemoTable2)
mysql> CREATE TABLE DemoTable2(
ConstantValue INT,
EmployeeName VARCHAR(100)
);
คิวรี INSERT SELECT รวม Constant
mysql> INSERT INTO DemoTable2(ConstantValue, EmployeeName)
SELECT '1000', Name FROM DemoTable1;
Query OK, 3 rows affected (0.13 sec)
ผลลัพธ์ใน DemoTable2
+---------------+--------------+
| ConstantValue | EmployeeName |
+---------------+--------------+
| 1000 | John |
| 1000 | Chris |
| 1000 | Robert |
+---------------+--------------+
คำอธิบาย:
SELECT '1000', Name- '1000' เป็น Constant (Literal) ซ้ำทุกแถว, Name มาจากตารางต้นทาง- จำนวนคอลัมน์ใน SELECT ต้องตรงกับคอลัมน์ใน INSERT (2 คอลัมน์)
- สามารถใช้ Expression, Function, หรือ Subquery แทน Constant ได้
- เหมาะสำหรับ: สร้าง Audit Log, Duplicate ข้อมูลพร้อม Flag, ETL Process