Ich brauche einen Dump .sql oder .csv - Datei in SQLite (Ich verwende SQLite3 API). Ich habe nur Dokumentation zum Importieren / Laden von Tabellen gefunden, nicht ganze Datenbanken. Im Moment, wenn ich tippe:
sqlite3prompt> .import FILENAME TABLE
Ich erhalte einen Syntaxfehler, da eine Tabelle und nicht eine gesamte Datenbank erwartet wird.
database
sqlite
import
sqlite-shell
happythenewsad
quelle
quelle
Antworten:
Verwenden Sie zum Importieren aus einer SQL-Datei Folgendes:
Um aus einer CSV-Datei zu importieren, müssen Sie den Dateityp und die Zieltabelle angeben:
quelle
Versuchen Sie es mit dem Befehl wie folgt:
Dies funktioniert natürlich nur mit SQL-Anweisungen in dump.sql. Ich bin nicht sicher, wie ich eine CSV importieren soll.
quelle
.mode csv
sqlite3 database.db < dump.sql
abgeben , das ist tatsächlich 100% tot, ist soooo langsam !!! Alsocat dump.sql | sqlite3 database.db
stattdessen verwenden! : DSo wechseln Sie von SCRATCH mit SQLite DB zum Importieren der CSV in eine Tabelle:
sqlite3 <your_db_file_name>
* Es wird als leere Datei erstellt.CREATE TABLE <table_Name> (<field_name1> <Type>, <field_name2> <type>);
Sobald Sie die Tabelle erstellt haben und die Spalten mit Ihren Daten aus der Datei übereinstimmen, können Sie die oben genannten Schritte ausführen ...
quelle
Der Befehl sqlite3 .import funktioniert nicht für normale CSV-Daten, da Kommas auch in Zeichenfolgen in Anführungszeichen als Trennzeichen behandelt werden.
Dies beinhaltet den Versuch, eine von der Shell erstellte CSV-Datei erneut zu importieren:
Es scheint, wir müssen die CSV in eine Liste von Insert-Anweisungen umwandeln, sonst funktioniert möglicherweise ein anderes Trennzeichen.
Drüben bei SuperUser sah ich einen Vorschlag, LogParser für den Umgang mit CSV-Dateien zu verwenden. Ich werde das untersuchen.
quelle
Wenn Sie gerne ein (Python-) Skript verwenden, gibt es ein Python-Skript, das dies automatisiert: https://github.com/rgrp/csv2sqlite
Dadurch wird die Tabelle automatisch für Sie erstellt und es werden einige grundlegende Typschätzungen und Datenumwandlungen für Sie durchgeführt (z. B. wird eine Zahl ermittelt und der Spaltentyp auf "real" gesetzt).
quelle
sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings
# csv2sqlite.py {csv-Dateipfad} {sqlite-db-Pfad} [{Tabellenname}]Denken Sie daran, dass das Standardtrennzeichen für SQLite die Pipe "|" ist.
http://sqlite.awardspace.info/syntax/sqlitepg01.htm#sqlite010
quelle
SQLite ist äußerst flexibel, da es auch die SQLite-spezifischen Punktbefehle in der SQL-Syntax zulässt (obwohl sie von der CLI interpretiert werden). Dies bedeutet, dass Sie solche Dinge tun können.
Erstellen Sie eine
sms
Tabelle wie folgt:Dann zwei Dateien:
Führen Sie Folgendes aus, um den Import der CSV-Datei mithilfe der SQL-Datei zu testen:
Zusammenfassend bedeutet dies, dass Sie die
.import
Anweisung in SQLite SQL verwenden können, genau wie in jeder anderen RDB, wie MySQL mitLOAD DATA INFILE
usw. Dies wird jedoch nicht empfohlen.quelle
Überprüfen Sie die Begriffeql. https://gitorious.org/termsql https://gitorious.org/termsql/pages/Home
Es konvertiert Text in SQL über die Befehlszeile. (CSV ist nur Text)
Beispiel:
Standardmäßig ist das Trennzeichen ein Leerzeichen. Damit es mit CSV funktioniert, das Kommata verwendet, gehen Sie folgendermaßen vor:
Alternativ können Sie dies tun:
Standardmäßig werden die Spaltennamen "COL0", "COL1" generiert, wenn Sie möchten, dass die erste Zeile für die Spaltennamen verwendet wird, die Sie folgendermaßen ausführen:
Wenn Sie benutzerdefinierte Spaltennamen festlegen möchten, gehen Sie folgendermaßen vor:
quelle
Wenn Sie es in Windows verwenden, müssen Sie den Pfad zur Datenbank in "" hinzufügen und außerdem einen doppelten Schrägstrich \ im Pfad verwenden, um sicherzustellen, dass Windows ihn versteht.
quelle
So können Sie in eine Identitätsspalte einfügen:
myfile.txt ist eine Datei in C: \ code \ db \ predefined \
data.db befindet sich in C: \ code \ db \
myfile.txt enthält Zeichenfolgen, die durch Zeilenumbrüche getrennt sind.
Wenn Sie weitere Spalten hinzufügen möchten, ist es einfacher, diese mithilfe des Pipe-Zeichens zu trennen. Dies ist die Standardeinstellung.
quelle
Importieren Sie Ihre CSV oder SQL in SQLite mit phpLiteAdmin , es ist ausgezeichnet.
quelle