فرض کنید میخاهیم در نرم افزار NAVICAT با کمک ستورات MYSQL اسامی تمام جداول را گرفته و سپس آن هارا پاک کنیم.
میدانیم دستور لازم برای این کار در MYSQL به صورت زیر است.
DROP TABLE IF EXIXTS `table_name`
اما نکته اینجاست که ابتدا باید اسم تمامی جداول را بگیریم و نکته دوم اینکه با دستور بالا اگر foreign keys داشته باشیم خطا داده می شود و اجازه اجرای دستور داده نمی شود.
برای گرفتن اسامی تمام جدوال و ایجاد دستور بالا دستور زیر را اجرا میکنیم
SELECT concat('DROP TABLE IF EXISTS `', table_name,'`;')
FROM information_schema.tables
WHERE table_schema ="table_name"
با اجرای دستور بالا دستور مشابه دستور زیر ایجاد میشود.
DROP TABLE IF EXISTS `about_img`;
DROP TABLE IF EXISTS `addresses`;
DROP TABLE IF EXISTS `users`;
یعنی اینکه اسامی تمام جداول را با دستور drop اصطلاحا concat میکنیم.
حالا فقط کافیست ابتدا و انتهای دستور بالا دو خط زیر را بنویسیم.
SET FOREIGN_KEY_CHECKS=0;
SET FOREIGN_KEY_CHECKS=1;
دستور نهایی به صورت زیر می شود.
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `about_img`;
DROP TABLE IF EXISTS `addresses`;
DROP TABLE IF EXISTS `users`;
SET FOREIGN_KEY_CHECKS=1;
source :