سؤال

لدي حاليًا قاعدة بيانات في MySQL ، وأود استيرادها في MS Access.

هل من الممكن القيام بذلك مع الحفاظ على جميع العلاقات كما هي (أي بدون التصدير إلى .csv أو باستخدام ODBC)؟

أنا مستجد في هذا المجال لذا فإن أي مساعدة موضع تقدير كبير.

شكرا.

هل كانت مفيدة؟

المحلول

أنت بحاجة إلى حل مشكلتين مختلفتين:

  1. إنشاء قاعدة بيانات فارغة MS Access ببنية تطابق بنية قاعدة بيانات MySQL.

  2. استخراج البيانات من MySQL وتحميلها في MS Access.

هذا ليس بالأمر السهل لأن قواعد بيانات SQL المختلفة تقدم ميزات هيكلية مختلفة وأنواع بيانات مختلفة وما إلى ذلك. كلما كان استخدامك لـ MySQL أكثر تعقيدًا ، زادت احتمالية تعرضك لبعض أدوات إيقاف العرض أثناء التحويل (على سبيل المثال ، لا يدعم Access المشغلات على الإطلاق). على العكس من ذلك ، إذا كنت تستخدم MySQL كمخزن بيانات بسيط ، فقد تجد التحويل سهلاً إلى حد ما.

للحصول على قاعدة بيانات MS Access بنفس بنية قاعدة بيانات MySQL ، فإن أفضل رهان هو العثور على أداة تعريف / رسم تخطيطي لقاعدة البيانات توفر الهندسة العكسية وتدعم كلاً من MySQL و MS Access. استخدمها لإجراء هندسة عكسية لقاعدة بيانات MySQL في مخطط قاعدة بيانات ، ثم قم بتغيير قاعدة البيانات الأساسية إلى MS Access واستخدم الأداة لإنشاء قاعدة بيانات.

راجع Dezign لقواعد البيانات التي (على الورق ، على أي حال) تقدم الميزات التي قد تحتاجها افعل هذا.

لضخ البيانات عبر ، هناك أي عدد من الأدوات. يشار إلى هذا النوع من العمليات بشكل عام باسم ETL (استخراج ، ترجمة ، تحميل).

نصائح أخرى

هل تقصد SQL Server؟قد تكون نقطة البداية الجيدة هي التحقق من خدمات تكامل خادم SQL (SSIS) ، والتي يمكن استخدامها لنقل البيانات من حول هذا القبيل.

ستكون Google مفيدة أيضًا ، تحقق من النتيجة الأولى:

http://support.microsoft.com/kb/237980

بالمناسبة ، قلت ".sql" في سؤالك: ملف .SQL هو ملف نصي ، يمكنه فعل أي شيء من إنشاء قاعدة بيانات ، أو إدراج البيانات ، أو إسقاط الجدول ، أو حذف البيانات ، أو منح الأذونات الصحيحة ،استدعاء إجراءات النظام وإعادة تشغيل الجهاز ، وتهيئة محرك أقراص ، وإرسال بريد إلكتروني .. فقط للمرجع ، ملفات .SQL ليست تنسيق التخزين المستخدم بواسطة SQL Server.

بينما يمكنك برمجة مخطط قاعدة البيانات في ملفات نصية عبر شيء مثل SQLyog ، ستجد أن بناء الجملة يختلف بدرجة كافية من قاعدة بيانات إلى أخرى (MySQL to Access ، في حالتك) بحيث لا يمكنك تطبيق البرامج النصية مباشرة.

بمجهود كبير ، يمكن إنشاء نص تحويل عن طريق تحرير النص (ربما يكون آليًا باستخدام برنامج ، اعتمادًا على حجم البرنامج النصي الناتج).أعتقد أنه سيكون من الأفضل لك استخدام ODBC لنسخ الجداول (والبيانات) ثم استخراج العلاقات وإعادة تطبيقها من البرنامج النصي الذي تم إنشاؤه يدويًا.تستغرق وقتًا طويلاً ، ولكنها أيضًا عملية لمرة واحدة آمل.

عندما يكون كلا النظامين نفس قاعدة البيانات ، فهناك أدوات يمكنها إجراء المقارنة وإنشاء النص البرمجي (TOAD for MySQL و RedGate Compare for Microsoft SQL) ، لكنها لا تقوم بعمل عبر قواعد البيانات (على الأقل ليس تلك التي أناأنا على علم).

إذا أنشأت ODBC DSN ، فيمكنك استخدام TransferDatabase للاستيراد من قاعدة بيانات MySQL.يمكنك القيام بذلك يدويًا باستخدام الأمر GET EXTERNAL DATA (أو أيًا كان ما هو موجود في A2007 / A2010) ومعرفة مدى نجاحه.لن تحصل على جميع أنواع البيانات بشكل صحيح تمامًا ، ولكن يمكنك القيام ببعض التدليك ومن المحتمل أن تجعلها أقرب إلى ما هو أفضل.

هل هناك سبب يمنعك من الارتباط بجداول MySQL واستخدامها مباشرةً؟لذلك ، لماذا تحتاج إلى الاستيراد إلى Access على الإطلاق؟

يمكنك تجربة استخدام هذا: تحويل MS Accessإلى MySQL مع العلاقات

يعمل بشكل جيد ويصدر جميع العلاقات.

الوصول: تشغيل الاستعلام.فقط تأكد من تكييف كود SQL لأن كل RDMS لها محورها الخاص (على الرغم من أن SQL هي معيار ANSI).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top