Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: สร้างตารางถ้ายังไม่มี และ Insert ข้อมูลในคิวรี่เดียว


คำอธิบาย

ใช้ 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 ทำให้ข้ามการสร้างตารางไปเลย