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

วิธีเช็คว่าตารางมีอยู่ใน MySQL โดยไม่ใช้ SELECT FROM

สามารถตรวจสอบว่าตารางมีอยู่หรือไม่ได้หลายวิธีโดยไม่ต้องใช้ SELECT * FROM table

วิธีที่ 1: ใช้ SHOW TABLES (ง่ายที่สุด)

-- แสดงตารางทั้งหมด
SHOW TABLES;

-- เช็คตารางเฉพาะ (ใช้ LIKE)
SHOW TABLES LIKE 'tblstudent';

ผลลัพธ์

-- มีตาราง
+---------------------------------+
| Tables_in_business (tblstudent) |
+---------------------------------+
| tblstudent                      |
+---------------------------------+

-- ไม่มีตาราง
Empty set (0.00 sec)

วิธีที่ 2: ใช้ INFORMATION_SCHEMA.TABLES (ยืดหยุ่นกว่า)

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business'
  AND TABLE_NAME = 'tblstudent';

ข้อดี

  • ใช้ใน Stored Procedure / Function ได้
  • รองรับ Wildcard และเงื่อนไขซับซ้อน
  • คืนค่าเป็น Result Set มาตรฐาน

วิธีที่ 3: ใช้ SHOW TABLE STATUS

SHOW TABLE STATUS LIKE 'tblstudent';

ให้ข้อมูลเพิ่มเติม: Engine, Row Count, Data Size, Auto Increment, Create Time, v.v.

วิธีที่ 4: ใช้ COUNT(*) กับ INFORMATION_SCHEMA (สำหรับเช็ค Boolean)

SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business' 
  AND TABLE_NAME = 'tblstudent';

คืนค่า 1 = มี, 0 = ไม่มี

สรุปแนะนำ

  • CLI/Ad-hoc: SHOW TABLES LIKE 'name'
  • ใน Application/Stored Proc: Query INFORMATION_SCHEMA
  • ต้องการ Metadata: SHOW TABLE STATUS