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?


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

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.


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.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.