اوامر الحــــــــذف :- اول شــــــــــــي اخذ نسخه
1- تنبيه مهم:
الأوامر أعلاه تحذف كل شيء في الجدول نهائيًا! ما في "رجوع" بعد
التنفيذ، إلا إذا عندك نسخة احتياطية
* هذه أوامر SQL لمسح المحتوى من جدول في قاعدة البيانات، بدون حذف الجدول
نفسه:
2- تقدر تنفذها في phpMyAdmin
كالتالي:
افتح phpMyAdmin
اختر قاعدة البيانات
اختر الجدول اللي تبي تمسح محتواه
اضغط على "SQL" من الأعلى
الصق الأمر (TRUNCATE TABLE ...) واضغط "Go"
+ الاوامر "
1- DELETE FROM اسم_الجدول;
هذا يحذف كل الصفوف، لكن يحتفظ بالتعداد التلقائي (AUTO_INCREMENT)
كما هو
2- TRUNCATE TABLE اسم_الجدول;
هذا يمسح كل الصفوف ويعيد التعداد التلقائي إلى 1 (يعني يبدأ العد من
جديد)
3- DROP DATABASE اسم القاعده;
إذا كنت تريد حذف جميع الجداول نهائيًا، وبدون الحاجة لتحديد أسماء
الجداول، يمكنك استخدام الأمر التالي داخل phpMyAdmin
4- CREATE DATABASE اسم القاعده;
إعادة إنشاء قاعدة البيانات من جديد ثم يمكنك إعادة إنشاء الجداول (سواء
يدويًا أو باستخدام نسخة احتياطية
5- SET FOREIGN_KEY_CHECKS = 0;
-- المسح من جميع الجداول
TRUNCATE TABLE اسم_الجدول1;
TRUNCATE TABLE اسم_الجدول2;
TRUNCATE TABLE اسم_الجدول3;
-- تكرر الأمر لكل جدول في قاعدة البيانات
SET FOREIGN_KEY_CHECKS = 1;
مسح كل محتوى الجداول (دون حذف الجداول نفسها
تنبيه :
ملاحظات إضافية:
TRUNCATE أسرع وأكثر كفاءة لأنه لا يحتفظ بسجلات المحذوفات مثل DELETE
استخدام DROP DATABASE سيحذف قاعدة البيانات بالكامل، بما في ذلك الجداول
والبيانات
+++ امر حذف مطور بدل ما تضع اي اسم جدول وتعب امر تلقائي فقط اسم القاعده
+++
نعم، يمكن أن تُنفّذ عملية مسح لجميع الجداول في قاعدة البيانات دون الحاجة
إلى كتابة اسم كل جدول يدويًا، لكن ذلك يتطلب بعض الخطوات الإضافية باستخدام إجراء
برمجي (Stored Procedure) أو استعلام ديناميكي للحصول على قائمة بكل الجداول
إليك الطريقة:
🧠 كيفية مسح جميع الجداول في قاعدة البيانات تلقائيًا:
1. استخدام استعلام ديناميكي:
يمكنك استخدام استعلام ديناميكي لجلب أسماء الجداول من قاعدة البيانات
ثم تنفيذ TRUNCATE أو DELETE عليها تلقائيًا. هذا يتم عبر INFORMATION_SCHEMA
للحصول على أسماء الجداول في قاعدة البيانات، ثم توليد استعلامات TRUNCATE لها
الخطوات:
تعطيل التحقق من المفاتيح الأجنبية:
sql
نسخ الكود
SET FOREIGN_KEY_CHECKS = 0;
استعلام لجلب جميع الجداول في قاعدة البيانات:
sql
نسخ الكود
SELECT CONCAT('TRUNCATE TABLE ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'اسم_قاعدة_البيانات';
هذا الاستعلام سيُرجع لك استعلامات TRUNCATE لجميع الجداول في قاعدة البيانات
تنفيذ الاستعلامات الناتجة:
قم بنسخ الاستعلامات الناتجة عن الاستعلام السابق، ثم قم بتشغيلها في
phpMyAdmin أو أي واجهة قاعدة بيانات
الاستعلام سيقوم بتوليد جميع الأوامر لـ TRUNCATE لكل الجداول
إعادة تفعيل التحقق من المفاتيح الأجنبية:
sql
SET FOREIGN_KEY_CHECKS = 1;
مثال كامل لعمل ذلك:
sql
SET FOREIGN_KEY_CHECKS = 0;
-- توليد استعلامات TRUNCATE لجميع الجداول
SELECT CONCAT('TRUNCATE TABLE ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'my_database';
SET FOREIGN_KEY_CHECKS = 1;
شرح:
information_schema.tables: هي قاعدة بيانات تحتوي على معلومات حول جميع
الجداول في جميع قواعد البيانات
table_schema = 'my_database': هنا، my_database هو اسم قاعدة البيانات التي
تعمل عليها. ضع اسم قاعدة البيانات التي تحتوي على الجداول التي تريد مسحها
2. التنفيذ اليدوي:
الاستعلام الأول سيولد لك جميع استعلامات TRUNCATE، التي ستحتاج إلى نسخها
وتشغيلها يدوياً
إزالة كل البيانات دون حذف الجداول (إعادة ضبط قاعدة البيانات)
هذه الطريقة فعّالة إذا كنت تريد مسح جميع البيانات في قاعدة البيانات وإعادة
استخدامها من جديد
اوامر الحفظ :-
والاسهل كما بالصوره 

وسلامتكم
0 تعليقات