Kurzbeschreibung Passend für Leser: Mobile Entwicklung Beim Migrieren von SQLite3-Daten nach MySQL treten viele Syntaxprobleme auf. Es ist unmöglich, alle Probleme auf einmal aufzulisten. In diesem Artikel werden so viele Probleme wie möglich aufgelistet, da jeder auf unterschiedliche Probleme stößt. Mithilfe dieses Artikels können Leser im Voraus vorhersagen, ob sie auf Probleme stoßen werden. Wenn sie wissen, was sie erwartet, können sie unerwartete Probleme vermeiden oder reduzieren, die nach der Datenmigration auftreten können. Anhand der Liste der Probleme können Sie erkennen, welche Probleme Sie lösen müssen. Ich werde Ihnen auch eine Lösung zu Ihrer Information bereitstellen. Für das Migrationsproblem gibt es keine Universallösung, da jeder auf andere Probleme stößt. Wenn in der Lösung gleichzeitig einige widersprüchliche Probleme vorhanden sind, wird es zu einem Problem. Okay, kommen wir gleich zur Sache! Fragenliste 1. Verschiedene von SQLite3 ausgegebene Variablen werden in MySQL nicht erkannt, z. B. (BEGIN TRANSACTION, COMMIT usw.). 2. Die SQLite-Datenbankdaten können das versteckte Feld „rowid“ nicht exportieren. 3. Das Datenexportformat der SQLite-Datenbank ist nicht mit anderen Datenbanken kompatibel, beispielsweise mit einfachen und doppelten Anführungszeichen 4. Die exportierten SQLite-Daten haben keine Spaltennamen, wie im 5. Spezielle Symbolverarbeitung, wie etwa das Escape-Zeichen "\" 6. Die Längenbeschränkungen für Tabellenfelder sind unterschiedlich 7. Effizienz beim Schreiben von Daten Problemlösung Erstens können Sie keine Tools wie sqliteStudio und Navicat verwenden. Hier können Sie Shell-Befehle verwenden, um die Inhaltsgenerierung direkt zu vermeiden.
Gleichzeitig kann die Verwendung der Shell-Methode mit sehr wenig Code implementiert werden. 1. Lösen Sie das Problem, dass der Feldspaltenname nicht ausgegeben wird Das Ausführen des sqlite3-Befehls "
Dann erhalten Sie den Spaltennamen durch Zeichenfolgenersetzung wie folgt: Angenommen, die Variablen sind COLS = Name, Beschreibung 2. Lösen Sie das Problem mit einfachen und doppelten Anführungszeichen Das Ausführen des sqlite3-Befehls "
Diese Methode kann das Problem einfacher und doppelter Anführungszeichen lösen. Hier geben wir einfache Anführungszeichen direkt und einheitlich aus. 3. Lösen Sie das Problem, dass das Standardfeld Rowid von SQLite3 nicht angezeigt werden kann. Ändern Sie hier Rowid direkt in ID Stellen Sie den aktuellen Modus auf den Einfügemodus .dump ein. Das Ausführen des sqlite3-Befehls "
4. Verwenden Sie den Shell-String-Befehl, um die zuvor erhaltenen Spaltennamen zur folgenden SQL-Anweisung hinzuzufügen Nach der Änderung sieht es folgendermaßen aus:
5. Verarbeitung von Escape-Zeichen Wenn die Daten in der Datenbank Escape-Zeichen enthalten, beispielsweise: Dieses Skript löst hauptsächlich die oben genannten Probleme 1 bis 5. Sie können das Skript nach Bedarf ändern. #!/bin/sh SQLITE=sqlite3 wenn [ -z "$1" ] ; dann Echo-Nutzung: $0 sqlite3.db Ausfahrt fi DB="$1" TABELLEN=`"$SQLITE" "$DB" .tables` für TABELLE in $TABLES; tun ERSTELLEN = `"$SQLITE" "$DB" "SQL AUSWÄHLEN VON sqlite_master, WO Typ = \"Tabelle\" UND Name = \"$TABLE\";"` echo $CREATE";" | Schnitt -d'=' -f2 | sed "s/^CREATE TABLE $TABLE (/CREATE TABLE $TABLE (id int auto_increment Primärschlüssel,/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 \"Tabelle\"/INSERT INTO $TABLE /g" | sed 's#\\#\\\\#g' Erledigt Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung des Linux-CRM-Bereitstellungscodes
>>: Element Plus implementiert Affix
Aus Hardwaregründen kann es vorkommen, dass die M...
Kürzlich musste ich einen Player in eine Webseite ...
Ziehen Sie das Bild root@EricZhou-MateBookProX: D...
Inhaltsverzeichnis 1. Einleitung 2. Mehrere Mögli...
Bei der Entwicklung ist es häufig erforderlich, d...
Wenn Sie mehrere Tomcats installieren möchten, mü...
<br />In diesem Artikel wurden die verschied...
Das folgende Skript wird für die geplante Sicheru...
Inhaltsverzeichnis Hintergrund Was ist Tablespace...
Hinweise zur Linux-Installation von MySQL 1. Stel...
Wird UPDATE gesperrt? Wird die SQL-Anweisung gesp...
Bevor Sie diesen Artikel lesen, hoffe ich, dass S...
1. Einführung in Gitlab Offizielle Gitlab-Adresse...
1. Herunterladen 2. Dekompression 3. Fügen Sie di...
Vorne geschrieben Umgebung: MySQL 5.7+, MySQL-Dat...