ホームページ > データベース > mysql チュートリアル > SQLite3 データベースを MySQL に簡単に移行するにはどうすればよいですか?

SQLite3 データベースを MySQL に簡単に移行するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-08 22:45:12
オリジナル
939 人が閲覧しました

How Can I Easily Migrate My SQLite3 Database to MySQL?

SQLite3 から MySQL への迅速かつ簡単な移行

SQLite3 データベースを MySQL に移行するための直接的なアプローチを求めている場合は、そうではありません。一人で。データを手動で変換しようとすると、多くの場合、インポートされたデータの正確性が不確かになります。この特定の変換用に確立されたライブラリはありませんが、2 つのファイル形式の違いに基づいたガイダンスを提供できます。

構文の違い

  • SQLite3 では次のものが使用されます。 「BEGIN TRANSACTION」と「COMMIT」は、MySQL では省略されています。
  • MySQL では必須です。スキーマ定義では一重引用符の代わりに二重引用符を使用します。
  • SQLite3 の二重引用符とは異なり、MySQL は "INSERT INTO" 句の文字列に一重引用符を使用します。
  • 文字列のエスケープは 2 つのシステム間で異なります。
  • MySQL はブール値に 1 と 0 を使用しますが、SQLite3 は「t」を使用しますおよび 'f.'
  • 自動インクリメント機能は、SQLite3 では「AUTOINCREMENT」、MySQL では「AUTO_INCREMENT」という名前です。

データ移行用の Perl スクリプト

これらの違いに対処し、特定の環境で正常にテストされた、修正された Perl スクリプトを提供します。データセット。ただし、特定のデータに合わせてカスタマイズする必要がある場合があります:

#! /usr/bin/perl

while ($line = <>){
    if (($line !~  /BEGIN TRANSACTION/) &amp;&amp; ($line !~ /COMMIT/) &amp;&amp; ($line !~ /sqlite_sequence/) &amp;&amp; ($line !~ /CREATE UNIQUE INDEX/)){
        
        if ($line =~ /CREATE TABLE \&quot;([a-z_]*)\&quot;(.*)/i){
            $name = ;
            $sub = ;
            $sub =~ s/\&quot;//g;
            $line = &quot;DROP TABLE IF EXISTS $name;\nCREATE TABLE IF NOT EXISTS $name$sub\n&quot;;
        }
        elsif ($line =~ /INSERT INTO \&quot;([a-z_]*)\&quot;(.*)/i){
            $line = &quot;INSERT INTO \n&quot;;
            $line =~ s/\&quot;/\\&quot;/g;
            $line =~ s/\&quot;/\'/g;
        }else{
            $line =~ s/\'\'/\\'/g;
        }
        $line =~ s/([^\'])\'t\'(.)/THIS_IS_TRUE/g;
        $line =~ s/THIS_IS_TRUE/1/g;
        $line =~ s/([^\'])\'f\'(.)/THIS_IS_FALSE/g;
        $line =~ s/THIS_IS_FALSE/0/g;
        $line =~ s/AUTOINCREMENT/AUTO_INCREMENT/g;
        print $line;
    }
}
ログイン後にコピー

以上がSQLite3 データベースを MySQL に簡単に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート