สามารถเพิ่มค่าคงที่ขณะ INSERT INTO ... SELECT ได้ 2 วิธี
วิธีที่ 1: ใส่ค่าตรงๆ ใน SELECT
INSERT INTO table2(col1, col2, col3) SELECT col1, col2, 'staticValue' FROM table1;
วิธีที่ 2: ใช้ User Variable
SET @staticValue = 20; INSERT INTO table2(col1, col2, col3) SELECT col1, col2, @staticValue FROM table1;
ตัวอย่างเต็ม
สร้างตารางแรก First_table:
mysql> CREATE TABLE First_table (
-> Id INT NOT NULL AUTO_INCREMENT,
-> FirstValue INT,
-> SecondValue INT,
-> PRIMARY KEY(Id)
-> );
เพิ่มข้อมูล:
mysql> INSERT INTO First_table(FirstValue, SecondValue) VALUES(10,14),(12,13),(100,110),(45,55);
สร้างตารางที่สอง Second_table (มี 3 คอลัมน์):
mysql> CREATE TABLE Second_table (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Value1 INT, Value2 INT, Value3 INT,
-> PRIMARY KEY(Id)
-> );
กรณี 1: ใส่ค่า 45 ตรงๆ
mysql> INSERT INTO Second_table(Value1, Value2, Value3)
-> SELECT FirstValue, SecondValue, 45 FROM First_table;
ผลลัพธ์
+----+--------+--------+--------+ | Id | Value1 | Value2 | Value3 | +----+--------+--------+--------+ | 1 | 10 | 14 | 45 | | 2 | 12 | 13 | 45 | | 3 | 100 | 110 | 45 | | 4 | 45 | 55 | 45 | +----+--------+--------+--------+
กรณีที่ 2: ใช้ Variable
mysql> SET @staticValue = 20;
mysql> INSERT INTO Second_table(Value1, Value2, Value3)
-> SELECT FirstValue, SecondValue, @staticValue FROM First_table;
ผลลัพธ์ (Value3 = 20)
+----+--------+--------+--------+ | Id | Value1 | Value2 | Value3 | +----+--------+--------+--------+ | 1 | 10 | 14 | 20 | | 2 | 12 | 13 | 20 | | 3 | 100 | 110 | 20 | | 4 | 45 | 55 | 20 | +----+--------+--------+--------+