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

วิธีเช็คว่าตารางมีอยู่ใน MySQL แบบต่างๆ

มีหลายวิธีในการตรวจสอบว่าตารางมีอยู่ใน Database หรือไม่

วิธีที่ 1: SHOW TABLES (พื้นฐาน)

-- แสดงทุกตาราง
SHOW TABLES;

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

ผลลัพธ์

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

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

วิธีที่ 2: INFORMATION_SCHEMA.TABLES (ยืดหยุ่นที่สุด)

SELECT TABLE_NAME, TABLE_TYPE, ENGINE, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business'
  AND TABLE_NAME = 'tblstudent';

ข้อดี

  • ได้ Metadata ครบ: Engine, Rows, Size, Create Time, Collation, v.v.
  • ใช้ใน Application/Stored Procedure ได้
  • รองรับ Wildcard: TABLE_NAME LIKE 'tbl%'
  • Filter ได้หลายเงื่อนไข

วิธีที่ 3: SHOW TABLE STATUS

SHOW TABLE STATUS LIKE 'tblstudent';

ให้ข้อมูลรายละเอียดมากกว่า SHOW TABLES

วิธีที่ 4: COUNT(*) กับ INFORMATION_SCHEMA (Boolean Check)

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

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

วิธีที่ 5: DESCRIBE / DESC (ถ้าตารางมีอยู่)

DESC tblstudent;
-- ถ้าไม่มี: ERROR 1146 (42S02): Table 'business.tblstudent' doesn't exist

⚠️ จะ Error ถ้าตารางไม่มี - ไม่เหมาะสำหรับเช็ค Boolean

สรุปแนะนำ

Use Caseวิธีที่แนะนำ
CLI Quick CheckSHOW TABLES LIKE 'name'
Application CodeINFORMATION_SCHEMA Query
Need MetadataSHOW TABLE STATUS / INFORMATION_SCHEMA
Boolean Exists CheckCOUNT(*) FROM INFORMATION_SCHEMA
Check + DescribeDESC (ถ้าแน่ใจว่ามี)