Exportieren von Daten aus SQLite 3
Ich brauche eine einfache Möglichkeit zum exportieren von Daten aus einer SQLite-Datenbank mit mehreren Tabellen, und importieren Sie Sie anschließend in eine andere Datenbank.
Hier ist mein Szenario. Ich habe 5 Tabellen: A, B, C, D, E.
Jede Tabelle hat einen primären Schlüssel als erste Spalte namens ID. Ich möchte einen Unix-Befehl, der dump NUR die Daten in der Zeile, aus der der Primärschlüssel ein format, dass importiert werden kann, in einer anderen Datenbank.
Ich weiß, ich kann eine
sqlite3 db .dump | grep INSERT
aber das gibt mir ALLE Daten in der Tabelle. Ich bin kein Datenbank-Experte, und ich bin versucht, dies mit allen unix-Befehlen, in denen ich können schreiben Sie ein shell-Skript, anstatt das schreiben von C++ - code, es zu tun (denn das ist, was die Leute mir sagen werden, dass ist der einfachste Weg). Ich habe gerade zu verweigern, um zu schreiben von C++ code, um eine Aufgabe zu erledigen, die möglich gemacht werden kann in 4-5 Aussagen über die Befehlszeile.
Irgendwelche Vorschläge?
- Nur fest.....Ich habe einen dump aller Daten und versucht zu importieren in der gleichen Datenbank. Der Primärschlüssel muss eindeutig sein. Also mein script erstellen müssen eindeutige Schlüssel? Oder wenn ich ausziehen, den primary key und auto-increment, wird eine insert-operation generiert einen eindeutigen Schlüssel?
- Darüber hinaus die Struktur der Tabelle, wo die Daten importiert werden, werden die gleichen sein, und ich habe zu exportieren und importieren Sie alle Daten der 5 Tabellen, die verknüpft sind mit der unique-ID. Wenn also alle 5 Tabellen haben eine eindeutige ID 1 mit den Spalten von Daten, die ich brauche zu exportieren in eine Datei, und importieren Sie dann, dass in der gleichen Tabelle Struktur, die auf einem anderen system (die Datenbank, die Dateien existieren).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies könnte Aussehen ein wenig seltsam, aber Sie können es ausprobieren:
Erstellen von text-Datei und fügen folgende Anweisungen gibt:
Füttern Sie diese Datei sqlite3:
Als Ergebnis erhalten Sie zwei Dateien: eine mit einfachen "Beilagen" (einfügen.sql) und ein weiteres mit db-schema (schema.sql).
.mode insert TABLE
. Dadurch wird es die Tabelle den Namen der generierten insert-statements.Vorschlagen, die Suche nach einem tool, können Sie Ihre query und export in eine CSV. Es klingt wie Sie wollte einen Skript. Haben Sie wiederverwenden möchten und automatisieren Sie diese?
Für andere Szenarien, vielleicht die sqlite-manager für Firefox-plugin. Es unterstützt die Ausführung Ihrer ad-hoc-Abfragen und exportieren der Ergebnisse in eine CSV-Datei.
Innerhalb, geben Sie die folgende Anweisung aus:
Wiederholen Sie für jede Tabelle, die Sie benötigen.
können Sie auch die
quote
Funktion von SQLite.quote
?Können Sie sqlite3 bash. Zum Beispiel, wenn Sie möchten, zu bekommen
insert
- Abfrage nach allen Datensätzen in einer Tabelle, die Sie tun können, die folgenden:Wird es erstellt eine Datei namens
insert.sql
und stelltinsert
Abfrage für jeden Datensatz in der angegebenen Tabelle.Ein Beispiel für das, was Sie bekommen in
insert.sql
: