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

วิธีตรวจสอบว่าตารางมีอยู่แล้วใน MySQL และแสดงคำเตือน

ใช้ 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+)