sqlite を mysql スクリプトに移行する方法

sqlite を mysql スクリプトに移行する方法

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。

パーレル
#
# https://stackoverflow.com/a/87531/5742651 に基づく
# 使用方法: sqlite3 .dump database_name.sqlite3 | perl sqlite2mysql.pl | mysql -u root -p $import_database_name
#
# 次の行を無視します:
# トランザクションを開始 
# 専念 
#sqlite_シーケンス 
# ユニークなインデックスを作成する
# プラグマ foreign_keys=OFF
# "テーブル名/フィールド" => `テーブル名/フィールド`
# ブール値 't' と 'f' => 1 と 0
# AUTOINCREMENT => AUTO_INCREMENT
# varchar => varchar(255)
# CREATE TABLE テーブル... => DROP TABLE テーブル; CREATE TABLE テーブル...
# 速度を上げるために挿入SQLを複数の挿入にマージします
# テーブルに挿入 VALUES('val1');
# テーブル VALUES('val2') に INSERT INTO テーブル VALUES('val1'), ('val2'), ('val3');
# テーブルに VALUES('val3') を挿入します。
私の$open=0;
私の$line_cache = '';
# スピードアップのために
"SET GLOBAL max_allowed_pa​​cket=209715200;\n" を印刷します。
#print "SET AUTOCOMMIT=0;\n";
($line = <>){
  if (($line !~ /PRAGMA foreign_keys=OFF/) && ($line !~ /BEGIN TRANSACTION/) && ($line !~ /COMMIT/) && ($line !~ /sqlite_sequence/) && ($line !~ /CREATE UNIQUE INDEX/)){
   ($line =~ /CREATE TABLE \"([a-z_0-9]*)\"(.*)/){の場合
   $name = "\`$1\`";
   $sub = $2;
   $sub =~ s/varchar([^(])/varchar(255)$1/g;
   $line = "$name が存在する場合はテーブルを削除します。\n$name$sub テーブルを作成します\n"; 
   }
   elsif ($line =~ /CREATE VIEW ([a-z_0-9]*)(.*)/){
   $name = "\`$1\`";
   $sub = $2;
   $line = "$name が存在する場合はビューを削除します。\n$name$sub のビューを作成します\n";
   }
   elsif ($line =~ /INSERT INTO \"([a-z_]*)\" VALUES(.*);/){
        $open == 0 の場合
          オープン = 1;
       $line_cache .= "\`$1\` の値 $2 に挿入";
        } それ以外 {
          $line_cache .= ", $2";
        }
        次;
   }それ以外{
   $line =~ s/\'\'/\\\'/g;
   }
    $open == 1の場合{
       $open = 0;
       $line = $line_cache.";\n".$line;
       $line_cache = '';
    }
   $line =~ s/\"/`/g;
   $line =~ s/([^\\'])\'t\'(.)/$1THIS_IS_TRUE$2/g;
   $line =~ s/THIS_IS_TRUE/1/g;
   $line =~ s/([^\\'])\'f\'(.)/$1THIS_IS_FALSE$2/g;
   $line =~ s/THIS_IS_FALSE/0/g;
   $line =~ s/AUTOINCREMENT/AUTO_INCREMENT/g;
   $line を印刷します。
  }
}
#print "SET AUTOCOMMIT=1;\n";

要約する

上記は、編集者が紹介した sqlite から mysql スクリプトに移行する方法です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQLデータベースを別のマシンに移行する方法の詳細な説明
  • MySQLデータベース移行により、大量のデータを迅速にエクスポートおよびインポートできます
  • MySQLdump コマンドを使用した MySQL データの移行
  • MySQLデータをOracleに移行する正しい方法
  • データファイルのコピーによる MySQL データベースの移行例
  • MySQLデータベースをOracleデータベースに移行する
  • mysql5.5 データベースデータディレクトリ移行方法の詳細な説明
  • MySQLデータベースのデータフォルダを移行するための詳細な手順
  • MySQLデータ移行方法とツールの分析

<<:  Svelte の Defer Transition を Vue で実装する方法

>>:  独自の YUM リポジトリを作成する手順

推薦する

88 秒で 1,000 万件のレコードを MySQL データベース テーブルに挿入する方法

私が使用しているデータベースはMySQLデータベースバージョン5.7ですまずデータベーステーブルを自...

Linux環境でglogログライブラリを使用する方法

Linuxライブラリを生成するLinux版はcentos7.3を使用し、コンパイルしてライブラリを生...

Nginx リバース プロキシ構成の完全なプロセス記録

1. 準備LinuxシステムにTomcatをインストールし、デフォルトのポート8080を使用してTo...

Linux での MySQL 5.7.17 の最新安定バージョンのインストール チュートリアル

ソースコードを通じて Linux に最新の安定バージョンの MySQL をインストールします: my...

MySQL 8.0 Windows zip パッケージ版の詳細なインストール手順

MySQL 8.0 Windows zipのインストール手順は次のように紹介されています。準備する:...

jQueryはすべてのショッピングカート機能を実装します

目次1. すべて選択2. 商品の数量を増やすか減らす3. 商品の小計を変更する4. 合計と合計額を計...

Typescriptの基本構文13個を共有する

目次1. Tsとは何か2. 基本的な文法1. プリミティブデータ型を宣言する2. オブジェクト型を宣...

vscodeで保存した後のHTML自動フォーマットの問題を解決する

vsCode のバージョンは最近更新され、現在のバージョン番号は 1.43 です。実際、vsCode...

Bootstrap 3.0 学習ノート CSS関連補足

この記事の主な内容は次のとおりです。 1. ブラウザのサポート2. 画像3. レスポンシブツール4....

html の img src="" で js 関数または js 変数を呼び出して、画像パスを動的に指定します。

この問題に関して、オンライン リソースをたくさん見つけました。ここにいくつかの方法を示します。コード...

yumコマンドの使い方

1. yumの紹介Yum (フルネームは Yellow dogUpdater、Modified) は...

CentOS6.9+Mysql5.7.18 ソースコードのインストール詳細チュートリアル

CentOS6.9+Mysql5.7.18 ソースコードのインストールでは、以下の操作を root ...

react-color を使用してフロントエンドのカラーピッカーを実装する方法

背景次の図に示すように、 react-color を使用してフロントエンド インターフェースのカラー...

CentOS 7.0 (mysql-5.7.21) で複数の MySQL インスタンスを起動する方法

設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...