ใช้ CREATE TABLE IF NOT EXISTS และ SHOW WARNINGS
คำสั่ง CREATE TABLE IF NOT EXISTS จะสร้างตารางก็ต่อเมื่อยังไม่มีอยู่ หากมีอยู่แล้วจะไม่สร้างใหม่ และปล่อย Warning ให้ดูได้ด้วย SHOW WARNINGS
ตัวอย่าง: พยายามสร้างตารางที่มีอยู่แล้ว
CREATE TABLE IF NOT EXISTS DemoTable (Id INT); -- Query OK, 0 rows affected, 1 warning (0.06 sec)
ดูคำเตือน
SHOW WARNINGS;
+-------+------+-------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------+ | Note | 1050 | Table 'DemoTable' already exists | +-------+------+-------------------------------------+
ตัวอย่าง: สร้างตารางใหม่ที่ยังไม่มี (สำเร็จ ไม่มี Warning)
CREATE TABLE IF NOT EXISTS DemoTable2 (Id INT); -- Query OK, 0 rows affected (0.71 sec)
คำอธิบาย:
IF NOT EXISTSป้องกัน Error 1050 (Table already exists)- คืนสถานะ "Query OK, 0 rows affected, 1 warning" เมื่อตารางมีอยู่แล้ว
SHOW WARNINGSแสดงรายละเอียด Warning ล่าสุด
การใช้งานจริง: ใช้ใน Script การ Deploy/ Migration เพื่อรันซ้ำได้ปลอดภัย (Idempotent)
คำสั่งเกี่ยวข้อง:
DROP TABLE IF EXISTS DemoTable;ลบตารางถ้ามี (ไม่ Error ถ้าไม่มี)CREATE DATABASE IF NOT EXISTS mydb;สร้างฐานข้อมูลถ้ายังไม่มีALTER TABLE ... ADD COLUMN IF NOT EXISTS ...(MySQL 8.0.13+)