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

วิธีใช้ชื่อฐานข้อมูลปัจจุบันเพื่อลบมันใน MySQL

การดึงชื่อฐานข้อมูลปัจจุบัน

เพื่อรับชื่อฐานข้อมูลปัจจุบัน สามารถใช้ฟังก์ชัน 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 และจัดการชื่อฐานข้อมูลที่มีอักขระพิเศษได้ดีกว่า