簡単な説明 適切な読者: モバイル開発 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 デプロイメント コードの詳細な説明
目次1. ツールの紹介2. ワークフロー3. 操作インターフェースとパラメータ設定(1)監視と再起動...
目次序文エラーオブジェクト投げる試して…捕まえて…最後に最終ルールトライ/キャッチパフォーマンスウィ...
jar パッケージを実行する Linux コマンドは次のとおりです。方法1: java -jar s...
効果: タイトルには独自のシリアル番号があり、コードブロックには配色があり、コードブロックの左上隅に...
前回の記事「1行のCSSコードの魅力」では、たった1行のCSSコードで生成できる美しい(奇妙な感じと...
1. GraphVis 公式サイトにアクセスして、対応する js をダウンロードします。js の新し...
会社の要件により、異なる場所にある 2 つの nginx サーバーを同じマシンにインストールする必要...
この記事では、docker pull がリセットされる問題を解決する方法を紹介し、皆さんと共有します...
序文MySQL が SQL SELECT コマンドと WHERE 句を使用してテーブルからデータを読...
目次1. サーバーの状態を確認します。 2. ルートパスワードを変更します。 3. mysqlser...
多くの Web サイト デザイナーが犯す最も一般的な間違いは、Web ページが IE で正常に表示さ...
目次1. 即時フィードバック1.1 ボタンからの即時フィードバック1.2 継続的なフィードバック1....
zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...
Web ページ上の色の表現は、さまざまな要因によって影響を受けます。Web ページで非常に美しい配色...
Nginx は、高性能な Web サイト サーバーおよびリバース プロキシ サーバーであり、IMAP...