Comment importer des fichiers .sql dans SQLite 3?

98

J'ai des fichiers .sql qui ont le contenu suivant:

#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)

Comment importer ce fichier dans SQLite pour qu'il soit créé automatiquement?

webminal.org
la source
sqlite3 DB.db <db.sql Erreur: SQL incomplet: create table server (name varchar (50), ipaddress varchar (15), id init) create table client (name varchar (50), ipaddress varchar (15), id init ) que signifie cette erreur? J'ai essayé les deux méthodes> .read db.sql et sqlite3 DB.db <db.sql
webminal.org

Réponses:

164

À partir d'une invite sqlite:

sqlite> .read db.sql

Ou:

cat db.sql | sqlite3 database.db

De plus, votre SQL n'est pas valide - vous avez besoin ;à la fin de vos instructions:

create table server(name varchar(50),ipaddress varchar(15),id init);
create table client(name varchar(50),ipaddress varchar(15),id init);
Dominic Rodger
la source
sqlite3 DB.db <db.sql Erreur: SQL incomplet: create table server (name varchar (50), ipaddress varchar (15), id init) create table client (name varchar (50), ipaddress varchar (15), id init ) que signifie cette erreur? J'ai essayé les deux méthodes> .read db.sql et sqlite3 DB.db <db.sql ... Merci
webminal.org
1
merci Cela fonctionne maintenant. J'ai manqué; et inclus des caractères invalides comme "-". Maintenant c'est bon, merci !!!
webminal.org
@lakshmipathi, si cela fonctionne, vous pouvez marquer l'une des deux réponses qui ont répondu à votre question comme acceptée en cliquant sur la coche sous le décompte des votes à côté de la réponse.
Dominic Rodger
59

Utilisez sqlite3 database.sqlite3 < db.sql. Vous devrez vous assurer que vos fichiers contiennent du SQL valide pour SQLite.

Eifion
la source
Moi aussi (syntaxe de ligne de commande Windows). Merci. Bien sûr, c'est lent, cependant.
Barton
2
J'ai été impatient de construire à partir d'un fichier .sql de 40 + Mo, terminé sqlite3 database.sqlite3 <db.sql en faveur de sqlite> .read db.sql. Il s'avère que l'alternative est tout aussi lente.
Barton
18

Vous pouvez également le faire à partir d'une invite de ligne de commande / d'un fichier de commandes Windows:

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

DB.db est le fichier de base de données et db.sql est le fichier SQL à exécuter / importer.

eureka
la source
cela a fonctionné pour moi, même si j'ai exécuté sqlite3 en tant que commande dans le terminal, donc:sqlite3 DB.db ".read db.sql"
Bugbeeb
16

Vous pouvez également faire:

sqlite3 database.db -init dump.sql
Ian Newland
la source