Läuft eine Sqlite3-Skript von der Kommandozeile aus
Schreibe ich ein shell-Skript zu scp ein Projekt und ein Teil davon beinhaltet die übertragung einige wichtige Tabellen in meiner Datenbank.
Habe ich Folgendes in der Datei gespeichert SQLTableTransfer
:
.o MyTable1.sql;
.dump MyTable1;
.o MyTable2.sql;
.dump MyTable2;
.o MyTable3.sql;
.dump MyTable3;
Und nahm eine chance auf
$ sqlite3 SQLTableTransfer
Aber dies eröffnet gerade die Sqlite3-shell. Was ist der richtige Weg, um ein Skript auszuführen, wie dies von der Kommandozeile aus?
- stackoverflow.com/questions/10045035/...
- Ich sah so etwas wie dieses, aber das ist zum ausführen von SQL-Sprache von der Befehlszeile aus, ich muss es ausführen Sqlite Sprache.
- Wenn die Befehle, die eingegeben werden, an die sqlite3-Befehl-Linie, dann ist dieser Ansatz sollte funktionieren. Die Allgemeine Idee ist, dass Sie senden den Inhalt der Datei zu sqlite3 stdin. Also anstelle von Tastatur-Eingabe, es verwendet die Eingaben aus dieser Datei. Hast du einen Versuch schon?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den parameter, den Sie geben, um die
sqlite3
Programm ist der name der Datenbankdatei.Zum ausführen von Befehlen aus einer Datei, müssen Sie die Umleitung der Eingabe-Datei:
oder sagen, es zu Lesen aus dieser Datei:
.dump
wenn Sie dies tun, ist es nur dumping die TabellePRAGMA foreign_keys=OFF; BEGIN TRANSACTION; COMMIT;
for f in *.csv
Aufruf von bash?Können Sie eine Liste der räumliche Tabellen wie folgt:
echo "SELECT f_table_name FROM geometry_columns;" | spatialite -noheader -silent your_db.sqlite