• 0

كيف يمكن تحويل المحرك لعدة جداول دفعة واحدة في MySQL

لدي قاعدة بيانات في MySQL تحتوي على جداول ذات محركات مختلفة (MyISAM و InooDB)

أرغب في تحويل جداول MyISAM إلى InnoDB

كيف يمكن عمل ذلك دفعة واحدة؟

للتوضيح، في هذا المثال شرح لطريقة سرد الأوامر المطلوبة، لكن بعدها يجب تشغيل هذه الأوامر واحدا تلو الآخر. عبر النسخ واللصق.

سؤالي: هل هناك طريقة مختصرة لتشغيل جميع الأوامر دفعة واحدة بعد سردها؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

وجدتُ الحل عندما نقلتَ السؤال هنا ؛ حفظ النتائج في مُتغير وتنفيذ الاستعلام، جربته هذه المرة

SELECT @q=GROUP_CONCAT(CONCAT('ALTER TABLE DBNAME.', TABLE_NAME, ' ENGINE=MyISAM') SEPARATOR ';')
   FROM Information_schema.TABLES 
    WHERE TABLE_SCHEMA = 'DBNAME'  
    AND ENGINE = 'MyISAM' AND TABLE_TYPE = 'BASE TABLE';
    PREPARE stmt from @q;
    EXECUTE stmt;

    DEALLOCATE PREPARE stmt;

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن