اذهب إلى المحتوى

السؤال

نشر

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

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

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

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

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

Recommended Posts

  • 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;

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...