สามารถตรวจสอบว่าตารางมีอยู่หรือไม่ได้หลายวิธีโดยไม่ต้องใช้ 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