"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحويل ملف MySQL Dump SQL إلى قاعدة بيانات SQLite3؟

كيفية تحويل ملف MySQL Dump SQL إلى قاعدة بيانات SQLite3؟

تم النشر بتاريخ 2024-11-08
تصفح:158

How to Convert a MySQL Dump SQL File to a SQLite3 Database?

تحويل MySQL Dump SQL إلى Sqlite3 DB

يتطلب استيراد ملف SQL تفريغ MySQL إلى قاعدة بيانات SQLite3 التحويل لضمان التوافق.

يوفر برنامج Shell النصي المقدم طريقة تلقائية لتحويل ملف التفريغ:

#!/bin/sh
# Usage: $0 

if [ "x$1" == "x" ]; then
   echo "Usage: $0 "
   exit
fi
cat $1 |
grep -v ' KEY "' |
grep -v ' UNIQUE KEY "' |
grep -v ' PRIMARY KEY ' |
sed '/^SET/d' |
sed 's/ unsigned / /g' |
sed 's/ auto_increment/ primary key autoincrement/g' |
sed 's/ smallint([0-9]*) / integer /g' |
sed 's/ tinyint([0-9]*) / integer /g' |
sed 's/ int([0-9]*) / integer /g' |
sed 's/ character set [^ ]* / /g' |
sed 's/ enum([^)]*) / varchar(255) /g' |
sed 's/ on update [^,]*//g' |
perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' |
perl -pe '
  if (/^(INSERT. ?)\(/) {
     $a=$1;
     s/\\'\''/'\'\''/g;
     s/\\n/\n/g;
     s/\),\(/\);\n$a\(/g;
  }
  ' > $1.sql
cat $1.sql | sqlite3 $1.db > $1.err
ERRORS=`cat $1.err | wc -l`
if [ $ERRORS == 0 ]; then
  echo "Conversion completed without error. Output file: $1.db"
  rm $1.sql
  rm $1.err
    rm tmp
else
   echo "There were errors during conversion.  Please review $1.err and $1.sql for details."
fi
; ثم صدى "الاستخدام: $0 " مخرج فاي قطة $1 | grep -v 'KEY "' | grep -v 'المفتاح الفريد "' | grep -v 'المفتاح الأساسي' | سيد '/^SET/d' | sed 's/ غير موقعة / /g' | sed 's/ auto_increment/ المفتاح الأساسي autoincrement/g' | sed 's/ Smallint([0-9]*) / integer /g' | sed 's/ tinyint([0-9]*) / integer /g' | sed 's/ int([0-9]*) / integer /g' | sed 's/ مجموعة الأحرف [^ ]* / /g' | sed 's/ enum([^)]*) / varchar(255) /g' | sed 's/ عند التحديث [^,]*//g' | Perl -e 'local $/;$_=;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' | بيرل -بي ' إذا (/^(INSERT. ?)\(/) { $أ=$1; s/\\'\''/'\'\''/g; ق/\\n/\n/g; s/\),\(/\);\n$a\(/g; } > $1.sql القط $1.sql | sqlite3 $1.db > $1.خطأ الأخطاء=`قطة $1.err | مرحاض -l` إذا [أخطاء $ == 0]؛ ثم صدى "اكتمل التحويل بدون خطأ. ملف الإخراج: $1.db" RM $1.sql rm $1.خطأ آر إم تمب آخر echo "حدثت أخطاء أثناء التحويل. يرجى مراجعة $1.err و$1.sql للحصول على التفاصيل." fi

يقوم البرنامج النصي بإجراء التحويلات التالية:
  • يزيل تعريفات المفاتيح الزائدة.
  • يعين الحقول على غير موقعة إذا كان ذلك ممكنًا.
  • يعين حقول الزيادة التلقائية إلى الزيادة التلقائية للمفتاح الأساسي.
  • يحول أنواع الأعداد الصحيحة إلى ما يعادلها في SQLite (smallint، tinyint و int يصبحان عددًا صحيحًا).
  • يزيل مجموعات الأحرف.
  • يحول أنواع التعداد إلى varchar(255).
  • يزيل مراجع المجموعة لمشغلات التحديث.
  • يحول إدراجات صفوف متعددة إلى إدراجات فردية للتوافق مع SQLite.
  • يلتف SQL المحول في معاملة لـ أمان.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3