Как импортировать файлы .sql в SQLite 3?


100

У меня есть файлы .sql со следующим содержанием:

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

Как мне импортировать этот файл в SQLite, чтобы они создавались автоматически?


sqlite3 DB.db <db.sql Ошибка: неполный SQL: создать сервер таблицы (имя varchar (50), ipaddress varchar (15), id init) создать клиент таблицы (имя varchar (50), ipaddress varchar (15), id init ) что означает эта ошибка? Я пробовал оба метода> .read db.sql и sqlite3 DB.db <db.sql
webminal.org

Ответы:


167

Из приглашения sqlite:

sqlite> .read db.sql

Или:

cat db.sql | sqlite3 database.db

Кроме того, ваш SQL недействителен - вам нужно ;в конце ваших операторов:

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 Ошибка: неполный SQL: создать сервер таблицы (имя varchar (50), ipaddress varchar (15), id init) создать клиент таблицы (имя varchar (50), ipaddress varchar (15), id init ) что означает эта ошибка? Я пробовал оба метода> .read db.sql и sqlite3 DB.db <db.sql ... Спасибо
webminal.org

1
спасибо Теперь работает. Я пропустил; и включены недопустимые символы, такие как "-". Теперь все нормально. Спасибо !!!
webminal.org

@lakshmipathi, если он работает, вы можете отметить один из двух ответов, ответивших на ваш вопрос, как принятый, щелкнув галочку под подсчетом голосов рядом с ответом.
Доминик Роджер

59

Используйте sqlite3 database.sqlite3 < db.sql. Вам необходимо убедиться, что ваши файлы содержат действительный SQL для SQLite.


Я тоже (синтаксис командной строки Windows). Спасибо. Хотя, конечно, медленно.
Бартон

2
Я получил нетерпеливое строительство из файла .sql размером 40+ Мб, завершил sqlite3 database.sqlite3 <db.sql в пользу sqlite> .read db.sql. Оказывается, альтернатива такая же медленная.
Бартон

19

Кроме того, вы можете сделать это из командной строки / командного файла Windows:

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

Где DB.db - это файл базы данных, а db.sql - это файл SQL для запуска / импорта.


это сработало для меня, хотя я запускал sqlite3 как команду в терминале, поэтому:sqlite3 DB.db ".read db.sql"
Bugbeeb

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.