คำอธิบาย
ใช้ CREATE TABLE IF NOT EXISTS ... AS SELECT เพื่อสร้างตารางใหม่ (ถ้ายังไม่มี) และ Insert ข้อมูลเริ่มต้นในคำสั่งเดียว
รูปแบบไวยากรณ์
create table if not exists yourTableName (
yourColumnName1 dataType,
yourColumnName2 dataType,
yourColumnName3 dataType,
...
) as select
yourValue1 as yourColumnName1,
yourValue2 as yourColumnName2,
yourValue3 as yourColumnName3,
...;
ตัวอย่างการใช้งาน
mysql> create table if not exists DemoTable (
id int,
FirstName varchar(20),
LastName varchar(20)
) as select 100 as id, 'John' as FirstName, 'Smith' as LastName;
Query OK, 1 row affected (0.65 sec)
Records: 1 Duplicates: 0 Warnings: 0
ตรวจสอบข้อมูล
mysql> select * from DemoTable;
ผลลัพธ์:
+------+-----------+----------+ | id | FirstName | LastName | +------+-----------+----------+ | 100 | John | Smith | +------+-----------+----------+ 1 row in set (0.00 sec)
ประโยชน์
- ป้องกัน Error "Table already exists"
- ลดจำนวนคำสั่งจาก 2 คำสั่ง (CREATE + INSERT) เหลือ 1 คำสั่ง
- เหมาะสำหรับ Script การ Deploy หรือ Migration
- โครงสร้างตารางจะถูกสร้างตามคอลัมน์ใน SELECT
ข้อควรระวัง
หากตารางมีอยู่แล้ว คำสั่ง AS SELECT จะไม่ทำงาน (ไม่ Insert ข้อมูลใหม่) เพราะ IF NOT EXISTS ทำให้ข้ามการสร้างตารางไปเลย