การดึงชื่อฐานข้อมูลปัจจุบัน
เพื่อรับชื่อฐานข้อมูลปัจจุบัน สามารถใช้ฟังก์ชัน DATABASE() ได้ดังนี้:
SELECT DATABASE();
ไวยากรณ์สำหรับการลบฐานข้อมูลปัจจุบัน
ใช้ตัวแปรผู้ใช้ (user-defined variables) ร่วมกับ prepared statements เพื่อสร้างและรันคำสั่ง DROP DATABASE แบบไดนามิก:
SET @current_db = DATABASE();
SELECT @current_db;
SET @sql = CONCAT('DROP DATABASE ', @current_db);
PREPARE stmt FROM @sql;
EXECUTE stmt;
ตัวอย่างการทำงาน
mysql> SET @current_db = DATABASE();
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @current_db;
+------------------+
| @current_db |
+------------------+
| employeeonboard |
+------------------+
1 row in set (0.00 sec)
mysql> SET @sql = CONCAT('DROP DATABASE ', @current_db);
Query OK, 0 rows affected (0.00 sec)
mysql> PREPARE stmt FROM @sql;
Query OK, 0 rows affected (0.04 sec)
Statement prepared
mysql> EXECUTE stmt;
Query OK, 0 rows affected (0.56 sec)
ตรวจสอบว่าฐานข้อมูลถูกลบแล้วหรือยัง
หลังจากรันคำสั่งแล้ว ให้ตรวจสอบอีกครั้งด้วย SELECT DATABASE():
mysql> SELECT DATABASE();
ผลลัพธ์จะคืนค่า NULL แสดงว่ายังไม่มีฐานข้อมูลใดถูกเลือก (เพราะมันถูกลบไปแล้ว):
+------------+ | DATABASE() | +------------+ | NULL | +------------+ 1 row in set (0.00 sec)
ข้อควรระวัง
- วิธีนี้จะลบฐานข้อมูลที่กำลังเชื่อมต่ออยู่ทันที — ใช้ด้วยความระมัดระวัง
- ต้องมีสิทธิ์
DROPบนฐานข้อมูลนั้น - Prepared statements ช่วยป้องกัน SQL injection และจัดการชื่อฐานข้อมูลที่มีอักขระพิเศษได้ดีกว่า