Jak zaimportować pliki .sql do SQLite 3?


100

Mam pliki .sql, które mają następującą zawartość:

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

Jak zaimportować ten plik do SQLite, aby były tworzone automatycznie?


sqlite3 DB.db <db.sql Błąd: niepełny SQL: utwórz serwer tabel (nazwa varchar (50), ipaddress varchar (15), id init) utwórz klienta tabeli (nazwa varchar (50), ipaddress varchar (15), id init ) co oznacza ten błąd? Wypróbowałem obie metody> .read db.sql i sqlite3 DB.db <db.sql
webminal.org

Odpowiedzi:


166

Z monitu sqlite:

sqlite> .read db.sql

Lub:

cat db.sql | sqlite3 database.db

Również twój SQL jest nieprawidłowy - potrzebujesz ;na końcu swoich instrukcji:

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 Błąd: niepełny SQL: utwórz serwer tabel (nazwa varchar (50), ipaddress varchar (15), id init) utwórz klienta tabeli (nazwa varchar (50), ipaddress varchar (15), id init ) co oznacza ten błąd? Wypróbowałem obie metody> .read db.sql i sqlite3 DB.db <db.sql ... Dzięki
webminal.org

1
dzięki Teraz działa. Przegapiłem; i zawierał nieprawidłowe znaki, takie jak „-”. Teraz jest dobrze. Dzięki !!!
webminal.org

@lakshmipathi, jeśli to działa, możesz oznaczyć jedną z dwóch odpowiedzi, które udzieliły odpowiedzi na Twoje pytanie, jako zaakceptowaną, klikając znacznik pod liczbą głosów obok odpowiedzi.
Dominic Rodger

59

Użyj sqlite3 database.sqlite3 < db.sql. Musisz upewnić się, że Twoje pliki zawierają prawidłowy kod SQL dla SQLite.


Ja też (składnia wiersza poleceń systemu Windows). Dzięki. Oczywiście jest powolny.
Barton,

2
Niecierpliwie budowałem z pliku .sql 40 + Mb, zakończono bazę danych sqlite3.sqlite3 <db.sql na korzyść sqlite> .read db.sql. Okazuje się, że alternatywa jest równie powolna.
Barton

19

Alternatywnie możesz to zrobić z wiersza poleceń / pliku wsadowego systemu Windows:

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

Gdzie DB.db to plik bazy danych, a db.sql to plik SQL do uruchomienia / importu.


to działało dla mnie, chociaż uruchomiłem sqlite3 jako polecenie w terminalu, więc:sqlite3 DB.db ".read db.sql"
Bugbeeb

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.