Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar Fail SQL Dump MySQL kepada Pangkalan Data SQLite3?

Bagaimana untuk Menukar Fail SQL Dump MySQL kepada Pangkalan Data SQLite3?

DDD
DDDasal
2024-11-03 01:27:29661semak imbas

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

Menukar MySQL Dump SQL kepada Sqlite3 DB

Mengimport fail MySQL dump SQL ke dalam pangkalan data SQLite3 memerlukan penukaran untuk memastikan keserasian.

Skrip shell yang disediakan menawarkan cara automatik untuk menukar fail dump:

<code class="shell">#!/bin/sh
# Usage:  <dumpname>

if [ "x" == "x" ]; then
   echo "Usage:  <dumpname>"
   exit
fi
cat  |
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=;
     s/\'\''/'\'\''/g;
     s/\n/\n/g;
     s/\),\(/\);\n$a\(/g;
  }
  ' > .sql
cat .sql | sqlite3 .db > .err
ERRORS=`cat .err | wc -l`
if [ $ERRORS == 0 ]; then
  echo "Conversion completed without error. Output file: .db"
  rm .sql
  rm .err
    rm tmp
else
   echo "There were errors during conversion.  Please review .err and .sql for details."
fi</code>

Skrip melakukan transformasi berikut:

  • Mengalih keluar definisi kunci berlebihan.
  • Menetapkan medan kepada tidak ditandatangani jika berkenaan.
  • Menetapkan medan auto_increment kepada autoincrement kunci utama.
  • Menukar jenis integer kepada yang setara dalam SQLite (smallint, tinyint, dan int menjadi integer).
  • Mengalih keluar set aksara.
  • Menukar jenis enum kepada varchar(255).
  • Mengalih keluar rujukan set untuk mengemas kini pencetus.
  • Menukar berbilang sisipan baris kepada sisipan individu untuk keserasian SQLite.
  • Membungkus SQL yang ditukar dalam transaksi untuk keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Fail SQL Dump MySQL kepada Pangkalan Data SQLite3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn