>  기사  >  데이터 베이스  >  MySQL 덤프 SQL 파일을 SQLite3 데이터베이스로 변환하는 방법은 무엇입니까?

MySQL 덤프 SQL 파일을 SQLite3 데이터베이스로 변환하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-03 01:27:29640검색

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

MySQL 덤프 SQL을 Sqlite3 DB로 변환

MySQL 덤프 SQL 파일을 SQLite3 데이터베이스로 가져오려면 호환성을 보장하기 위해 변환이 필요합니다.

제공된 셸 스크립트는 덤프 파일을 자동으로 변환하는 방법을 제공합니다.

<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>

스크립트는 다음 변환을 수행합니다.

  • 중복 키 정의를 제거합니다.
  • 문자 집합을 제거합니다.
  • 열거형 유형을 varchar(255)로 변환합니다.
  • 업데이트 트리거에 대한 집합 참조를 제거합니다.
  • 여러 행 삽입을 개별 삽입으로 변환합니다. SQLite 호환성을 위해.
  • 안전을 위해 변환된 SQL을 트랜잭션으로 래핑합니다.

위 내용은 MySQL 덤프 SQL 파일을 SQLite3 데이터베이스로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.