Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menukar Fail Dump MySQL ke dalam Format SQLite-Importable?

Bagaimana untuk Menukar Fail Dump MySQL ke dalam Format SQLite-Importable?

DDD
Lepaskan: 2024-10-28 18:16:30
asal
606 orang telah melayarinya

 How to Convert MySQL Dump Files into SQLite-Importable Format?

Menukar Fail Dump MySQL ke dalam Format Penting SQLite

Masalah:

Mengimport fail SQL buang MySQL yang dieksport ke dalam SQLite3 pangkalan data secara langsung menggunakan alat sqlite3 tidak berjaya. Bagaimanakah perkara ini boleh diselesaikan?

Penyelesaian:

Skrip shell berikut boleh menukar fail dump MySQL kepada format yang boleh diimport ke dalam SQLite3:

#!/bin/sh
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
Salin selepas log masuk

Penjelasan:

  • Skrip terlebih dahulu menapis baris tertentu daripada fail dump MySQL yang boleh menyebabkan isu semasa mengimport ke SQLite3, seperti kekangan utama dan set aksara takrifan.
  • Ia kemudian menukar jenis data tertentu, seperti smallint dan int, kepada integer dan mengalih keluar sebarang pengubah yang tidak ditandatangani.
  • Skrip menukar jenis data enum kepada varchar(255) dan mengalih keluar sebarang pada fasal kemas kini.
  • Ia membungkus penyata SQL dalam blok transaksi mula dan komit.
  • Skrip membetulkan mana-mana aksara baris baharu yang terlepas dan membahagikan penyataan INSERT dengan berbilang baris ke dalam penyata individu.
  • Akhir sekali, ia mengimport fail SQL yang diubah suai ke dalam pangkalan data SQLite3.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Fail Dump MySQL ke dalam Format SQLite-Importable?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan