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.