سؤال

لدي ملف .sql وأريد تحميله في قاعدة بيانات MySQL. لا أعرف من قاعدة البيانات (MySQL أو MS-SQL) تم إنشاؤها.

الآن، أحاول استيراد هذا الملف إلى قاعدة بيانات MySQL. يظهر أخطاء أثناء استيراد وتنفيذ هذا الملف.

q1. لذلك، سؤالي هو ما إذا كانت ملف .sql الذي تم إنشاؤه من MySQL و MS-SQL مختلفة؟

ملاحظة: أنا أستخدم برنامج Sqlyog (واجهة رسومية ل MySQL) لاستيراد الملف.

هنا هو الخطأ:

الاستعلام: إنشاء جدول ads ( id bigint (20) لا null auto_incrent، city_id int (11) لا لاغية، type النص collate utf8_bin لا لاغية، town النص collate utf8_bin لا لاغية، address النص collate utf8_bin لا لاغية، price النص collate utf8_bin لا لاغية، info النص collate utf8_bin لا لاغية، link النص collate utf8_bin لا لاغية، hasImage int (11) لا لاغية، language varchar (2) collate utf8_bin لا لاغية، time_added varchar (255) collate utf8_bin غير فارغ، مفتاح أساسي (id)) المحرك = InnoDB الافتراضي Charset = utf8 collate = utf8_bin auto_incrent = 1

حدث خطأ في: 2009-09-08 17:41:01 خط السطر: 35 رمز الخطأ: 1050 - جدول "الإعلانات" موجودة بالفعل

الاستعلام: إنشاء جدول ads ( id bigint (20) لا null auto_incrent، city_id int (11) لا لاغية، type النص collate utf8_bin لا لاغية، town النص collate utf8_bin لا لاغية، address النص collate utf8_bin لا لاغية، price النص collate utf8_bin لا لاغية، info النص collate utf8_bin لا لاغية، link النص collate utf8_bin لا لاغية، hasImage int (11) لا لاغية، language varchar (2) collate utf8_bin لا لاغية، time_added varchar (255) collate utf8_bin غير فارغ، مفتاح أساسي (id)) المحرك = InnoDB الافتراضي Charset = utf8 collate = utf8_bin auto_incrent = 1

حدث خطأ في: 2009-09-08 17:41:21 سطر رقم: 35 رمز الخطأ: 1050 - الجدول "الإعلانات" موجودة بالفعل

الاستعلام: إنشاء جدول ads ( id bigint (20) لا null auto_incrent، city_id int (11) لا لاغية، type النص collate utf8_bin لا لاغية، town النص collate utf8_bin لا لاغية، address النص collate utf8_bin لا لاغية، price النص collate utf8_bin لا لاغية، info النص collate utf8_bin لا لاغية، link النص collate utf8_bin لا لاغية، hasImage int (11) لا لاغية، language varchar (2) collate utf8_bin لا لاغية، time_added varchar (255) collate utf8_bin غير فارغ، مفتاح أساسي (id)) المحرك = InnoDB الافتراضي Charset = utf8 collate = utf8_bin auto_incrent = 1

حدث خطأ في: 2009-09-08 17:41:35 سطر رقم: 35 رمز الخطأ: 1050 - جدول "الإعلانات" موجودة بالفعل

الاستعلام: إنشاء جدول ads ( id bigint (20) لا null auto_incrent، city_id int (11) لا لاغية، type النص collate utf8_bin لا لاغية، town النص collate utf8_bin لا لاغية، address النص collate utf8_bin لا لاغية، price النص collate utf8_bin لا لاغية، info النص collate utf8_bin لا لاغية، link النص collate utf8_bin لا لاغية، hasImage int (11) لا لاغية، language varchar (2) collate utf8_bin لا لاغية، time_added varchar (255) collate utf8_bin غير فارغ، مفتاح أساسي (id)) المحرك = InnoDB الافتراضي Charset = utf8 collate = utf8_bin auto_incrent = 1

حدث خطأ في: 2009-09-08 17:42:07 سطر رقم: 35 رمز الخطأ: 1050 - الجدول "الإعلانات" موجودة بالفعل

الاستعلام: 1 جامعة ستانفورد 6700 http://www.orkut.co.in. . . .

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

المحلول

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

الأخطاء التي تصل إلى هناك "Table 'ads' already exists" لأنك تحاول إنشاء جدول موجود بالفعل في قاعدة البيانات. (هل قرأت الخطأ؟) لديك بعض الخيارات:

  1. تغيير SQL إلى هذا:

    CREATE TABLE IF NOT EXISTS ads ( id bigint(20) ...
    
  2. تغيير SQL إلى هذا:

    DROP TABLE IF EXISTS ads;
    CREATE TABLE ads (id bigint(20) ...
    
  3. قم بإلغاء تحديد جميع الجداول في DB أولا.

نصائح أخرى

MySQL و Microsoft SQL Server Do، لسوء الحظ، قم بتنفيذ لهجات مختلفة من SQL. لذلك، الجواب على سؤالك:

q1. لذلك، سؤالي هو ما إذا كانت ملف .sql الذي تم إنشاؤه من MySQL و MS-SQL مختلفة؟

هو "نعم، بمنافق جدا". ومع ذلك، يبدو أن الخطأ المحدد الذي تظهر عليه أنه يرجع بدقة إلى عبارة "إنشاء جدول" على السطر 35 قيد التنفيذ مرارا وتكرارا، وهذا لا يمكن أن يعتمد على اختلافات هذه الدلالة، وبالتالي يجب أن تكون الأسباب آخرون (مثل الأخطاء أو الاختلافات التنسيقية الدقيقة في برنامج "Sqlyog"، الذي لا أعرفه، يتوقع كإدخاله).

ذلك يعتمد على البرنامج الذي تصدير هذا الملف. تحقق أيضا في رأس الملف الذي قام به البرنامج وتحليل بناء الجملة لتحديد مكانك هذا الملف إليه. ملاحظة أيضا أن SQL هو Microsoft SQL Server.

نعم. يختلف SQL إلى حد كبير من قاعدة البيانات إلى قاعدة البيانات. بينما هناك SQL قياسي ما هي معظم قواعد البيانات التي تدعم الكثير منها، حيث تحتوي كل قاعدة بيانات على العديد من الميزات والوظائف غير القياسية غير المتفائلة أعلاه وما بعدها والتي تحددها المعيار.

هناك أيضا العديد من مستندات الهجرة Avaiable:

MSSQL => MySQL:http://dev.mysql.com/tech-resources/articles/migrating-from-microsoft.html.

MySQL => MSSQL:http://technet.microsoft.com/en-us/library/cc966396.aspx.

هناك نوعان من الأشياء الواضحة في عبارة "إنشاء جدول" أن MSSQL لا يدعم القفز على الفور:

ENGINE=InnoDB
AUTO_INCREMENT=1

هذه هي كلا البيانات الخاصة بي MySQL.

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

SQL نفسها تبدو جيدة ل mysql. لن يعمل مع SQL Server.

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