Wie importiere ich SQL-Dateien in SQLite 3?

97

Ich habe SQL-Dateien mit folgendem Inhalt:

#cat db.sql
create table server(name varchar(50),ipaddress varchar(15),id init)
create table client(name varchar(50),ipaddress varchar(15),id init)

Wie importiere ich diese Datei in SQLite, damit diese automatisch erstellt werden?

webminal.org
quelle
sqlite3 DB.db <db.sql Fehler: unvollständiges SQL: Tabellenserver erstellen (Name varchar (50), IP-Adresse varchar (15), ID init) Tabellenclient erstellen (Name varchar (50), IP-Adresse varchar (15), ID init ) Was bedeutet dieser Fehler? Ich habe beide Methoden ausprobiert> .read db.sql und sqlite3 DB.db <db.sql
webminal.org

Antworten:

163

Von einer SQLite-Eingabeaufforderung:

sqlite> .read db.sql

Oder:

cat db.sql | sqlite3 database.db

Außerdem ist Ihre SQL ungültig - Sie benötigen ;am Ende Ihrer Anweisungen:

create table server(name varchar(50),ipaddress varchar(15),id init);
create table client(name varchar(50),ipaddress varchar(15),id init);
Dominic Rodger
quelle
sqlite3 DB.db <db.sql Fehler: unvollständiges SQL: Tabellenserver erstellen (Name varchar (50), IP-Adresse varchar (15), ID init) Tabellenclient erstellen (Name varchar (50), IP-Adresse varchar (15), ID init ) Was bedeutet dieser Fehler? Ich habe beide Methoden ausprobiert> .read db.sql und sqlite3 DB.db <db.sql ... Danke
webminal.org
1
danke Es funktioniert jetzt. Ich habe es verpasst; und ungültige Zeichen wie "-" enthalten. Jetzt ist es in Ordnung. Danke !!!
webminal.org
@lakshmipathi, wenn es funktioniert, können Sie eine der beiden Antworten, die Ihre Frage beantwortet haben, als akzeptiert markieren, indem Sie auf das Häkchen unter der Stimmenzahl neben der Antwort klicken.
Dominic Rodger
58

Verwenden Sie sqlite3 database.sqlite3 < db.sql. Sie müssen sicherstellen, dass Ihre Dateien gültiges SQL für SQLite enthalten.

Eifion
quelle
Ich auch (Windows-Befehlszeilensyntax). Vielen Dank. Sicher ist es aber langsam.
Barton
2
Ich habe ungeduldig aus einer 40 + Mb .sql-Datei erstellt, sqlite3 database.sqlite3 <db.sql zugunsten von sqlite> .read db.sql beendet. Die Alternative ist genauso langsam, wie sich herausstellt.
Barton
17

Alternativ können Sie dies über eine Windows-Eingabeaufforderungs- / Batchdatei tun:

sqlite3.exe DB.db ".read db.sql"

Dabei ist DB.db die Datenbankdatei und db.sql die auszuführende / zu importierende SQL-Datei.

Eureka
quelle
Dies funktionierte für mich, obwohl ich sqlite3 als Befehl im Terminal ausgeführt habe, also:sqlite3 DB.db ".read db.sql"
Bugbeeb
15

Sie können auch tun:

sqlite3 database.db -init dump.sql
Ian Newland
quelle