簡単な説明 適切な読者: モバイル開発 sqlite3 データを mysql に移行する場合、多くの構文上の問題が発生します。一度にすべての問題をリストすることは不可能です。誰もが異なる問題に遭遇するため、この記事ではできるだけ多くの問題をリストアップします。読者はこの記事を参考にして、問題が発生するかどうかを事前に予測することができます。何が起こるかを知っておくと、データの移行後に発生する可能性のある予期しない問題を回避または軽減するのに役立ちます。問題リストを見ると、どのような問題を解決する必要があるかがわかります。参考までに解決策も提供します。移行の問題には、誰もが異なる問題に遭遇するため、万能の解決策はありません。解決策の中に矛盾する問題が同時に存在する場合、問題になります。 さて、早速本題に入りましょう! 質問リスト 1. sqlite3 によってダンプされたさまざまな変数 (BEGIN TRANSACTION、COMMIT など) は、mysql では認識されません。 2. sqliteデータベースデータは隠しフィールドrowidをエクスポートできません 3. sqliteデータベースのデータエクスポート形式は、一重引用符や二重引用符など、他のデータベースと互換性がありません。 4. エクスポートされた sqlite データには、 5. エスケープ文字「\」などの特殊記号処理 6. テーブルフィールドの長さ制限が異なる 7. データ書き込み効率 問題解決 まず、sqliteStudio や Navicat などのツールは使用できません。ここでは、シェル コマンドを使用してコンテンツ生成を直接回避できます。
同時に、シェル メソッドを使用すると、非常に少ないコードで実装できます。 1. フィールド列名が出力されない問題を解決する sqlite3コマンド「
次に、次のように文字列置換によって列名を取得します。 変数はCOLS = name、descriptionであると仮定します。 2. 一重引用符と二重引用符の問題を解決する sqlite3コマンド「
この方法は、シングルクォートとダブルクォートの問題を解決できます。ここでは、シングルクォートを均一に直接出力します。 3. sqlite3のデフォルトフィールドrowidが表示されない問題を解決します。ここでは、rowidを直接idに変更します。 現在のモードを.dump挿入モードに設定する sqlite3コマンド「
4. シェル文字列コマンドを使用して、以前に取得した列名を次のSQL文に追加します。 変更後は次のようになります。
5. エスケープ文字の処理 データベース内のデータにエスケープ文字が含まれている場合、例: このスクリプトは主に上記1〜5の問題を解決します。必要に応じてスクリプトを変更できます。 #!/bin/sh SQLite = sqlite3 if [ -z "$1" ] ; then echo 使用法: $0 sqlite3.db 出口 フィ DB="$1" テーブル = `"$SQLITE" "$DB" .tables` $TABLES内のTABLEに対して、 CREATE=`"$SQLITE" "$DB" "SELECT sql FROM sqlite_master WHERE type=\"table\" AND name = \"$TABLE\";"` echo $CREATE";" | カット -d'=' -f2 | sed "s/^CREATE TABLE $TABLE (/CREATE TABLE $TABLE (id int auto_increment 主キー ,/g" COLS=`"$SQLITE" "$DB" "pragma table_info($TABLE)" | cut -d'|' -f2 ` COLS_CS=`echo $COLS | sed 's/ /,/g'` echo ".mode insert \n.header on \n select rowid as id,$COLS_CS from $TABLE;\n" | "$SQLITE" "$DB" | sed "s/^INSERT INTO \"table\"/INSERT INTO $TABLE /g" | 's#\\#\\\\#g' を実行します 終わり 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: Linux CRM デプロイメント コードの詳細な説明
Python 3.4でMySQLデータベースを使用する詳細なプロセスは次のとおりです。 Window...
目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...
1. スタイルシートの先頭にコメント ブロックを追加して、スタイルシートの作成日、作成者、タグ、その...
VNodeとはvue.js には VNode クラスがあり、これを使用してさまざまな種類の vnod...
プラグインは Firefox ブラウザにインストールされます。 Web Developer プラグイ...
MySQL が数千万のデータをクエリする場合、ほとんどのクエリ最適化の問題はインデックスを通じて解決...
この記事では、例を使用して、MySQL で効率的なインデックスを作成する方法について説明します。ご参...
目次序文パブリッシュ・サブスクライバ・パターン結果電話要約する序文双方向データ バインディングとは、...
nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...
<br />ネットワーク設計の分野では、アイトラッキングに関する研究が非常に盛んに行われ...
1. Busyboxのソースコードをオンラインでダウンロードしてください。コンパイル方法については、...
Docker を使用すると、外部からコンテナにアクセスしたり、コンテナを相互接続したりすることで、ネ...
目次導入始めるインストール①直接ダウンロードする方法②CND法③NPM方式④糸法NPMインストールの...
記事の構成1. 準備2. Java JDK8.0をインストールする3. 環境変数を設定する3. イン...
テーブル ヘッダーが固定されている場合は、それを 2 つのテーブルに分割する必要があります。1 つの...