امین کریمی
امین کریمی
خواندن ۱ دقیقه·۲ سال پیش

آموزش NAVICAT

فرض کنید میخاهیم در نرم افزار 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 =&quottable_name&quot

با اجرای دستور بالا دستور مشابه دستور زیر ایجاد میشود.

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 :

https://tableplus.com/blog/2018/08/mysql-how-to-drop-all-tables.html



drop tabletable existsنرم افزارforeign key
شاید از این پست‌ها خوشتان بیاید