SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite-Abfrageergebnisse als INSERT-Anweisung ausgeben

Die SQLite-Befehlszeilenschnittstelle hat einen praktischen Punktbefehl namens .mode , mit dem Sie die Formatierung von Abfrageergebnissen ändern können.

Einer der Werte, die Sie mit diesem Befehl verwenden können, ist insert . Die Verwendung dieses Werts führt dazu, dass alle nachfolgenden Abfrageergebnisse als SQL INSERT formatiert werden Erklärung.

SQLite-Standardeinstellungen

Zunächst sehen Sie hier, wie Ihre normalen Ergebnisse aussehen könnten (vorausgesetzt, Sie verwenden die SQLite-Standardeinstellungen).

SELECT * FROM Products;

Ergebnis:

1|Widget Holder|139.5
2|Widget Opener|89.7
3|Widgets - 6 Pack|374.2
4|Blue Widget|63.0

Ergebnisse als INSERT-Anweisung

Hier erfahren Sie, wie Sie es ändern, sodass die Ergebnisse als SQL INSERT formatiert werden Aussage:

.mode insert Products2

Diese Anweisung gibt Products2 an als die Tabelle, in die die Daten eingefügt werden. Sie müssten den Namen der Tabelle angeben, in die Sie die Daten einfügen möchten.

Wenn ich jetzt das vorherige SELECT ausführe Anweisung erneut, werden sie als INSERT ausgegeben Erklärung.

SELECT * FROM Products;

Ergebnis:

INSERT INTO Products2 VALUES(1,'Widget Holder',139.49999999999999999);
INSERT INTO Products2 VALUES(2,'Widget Opener',89.700000000000002838);
INSERT INTO Products2 VALUES(3,'Widgets - 6 Pack',374.19999999999998862);
INSERT INTO Products2 VALUES(4,'Blue Widget',63.000000000000000001);

Dieses Format speichern

Wenn Sie SQLite in einem neuen Terminalfenster öffnen, gehen diese Einstellungen verloren. Mit anderen Worten, SQLite kehrt zu seinem Standardausgabeformat zurück (das eine durch Pipes getrennte Liste ist).

Sie können jedoch Ihre eigenen Standardeinstellungen festlegen, indem Sie die obigen Einstellungen in einer Textdatei speichern.

Geben Sie dazu Folgendes in eine Textdatei ein:

.mode insert NewTable

Speichern Sie diese Datei dann als .sqliterc in Ihrem/(dem Benutzer) Home-Verzeichnis.

Wenn Sie sich jetzt in einem neuen Terminalfenster mit SQLite verbinden, werden diese Einstellungen anstelle der standardmäßigen SQLite-Einstellungen verwendet.

Dieses Beispiel verwendet NewTable als Zieltabelle, aber Sie können verwenden, was Sie wollen.

Offensichtlich besteht das einzige Problem dabei darin, dass Sie den Namen der Tabelle ändern müssen, wenn er sich ändert. Und wenn Sie sich die Mühe machen müssen, dies zu tun, ist es möglicherweise einfacher, es einfach spontan mit .mode insert NewTable zu ändern (anstatt den Tabellennamen suchen/ersetzen zu müssen). Auf jeden Fall ist es eine Option, wenn Sie es brauchen.