как сохранить базу данных, созданную в sqlite3

Я новичок в базе данных. Я пытаюсь создать базу данных и таблицу в ней. но не удалось сохранить и открыть снова после выхода из sqlite. Я использую sqlite3 3.6.20 на centOS, когда я введу следующую команду

.save ex1.db or .open ex1.db

он будет печатать следующее сообщение об ошибке.

Error: unknown command or invalid arguments:  "save". Enter ".help" for help
Error: unknown command or invalid arguments:  "open". Enter ".help" for help

и при печати .помощь он не будет показывать любую команду, связанную с сохранением и открытием существующей базы данных. Спасибо заранее.

3 ответов


Я пытаюсь создать базу данных и таблицу в ней. но не удалось сохранить и открыть снова после выхода из sqlite.

вам не нужно сохранять. Каждая транзакция записывается на диск. (Более или менее.)

для создания базы данных " test.sl3", вы можете это сделать. (Из командной строки. Программы работают примерно так же.)

$ sqlite3 test.sl3
SQLite version 3.8.7.2 2014-11-18 20:57:56
Enter ".help" for usage hints.
sqlite> create table test (test_id integer primary key);
sqlite> insert into test values (1);
sqlite> select * from test;
1
.quit

нет .save. Теперь снова загрузите базу данных.

$ sqlite3 test.sl3
SQLite version 3.8.7.2 2014-11-18 20:57:56
Enter ".help" for usage hints.
sqlite> select * from test;
1

данные все еще там.


как Майк указал в своем ответе, вы должны предоставить имя файла для размещения базы данных.

если вы сделали много работы и вы не указали имя файла и работе в Версия, в которой .save команда еще не доступна (вы цитируете это sqlite3 3.6.20 не знаю его, и я также не вижу его в sqlite3 version 3.8.2) можно использовать .backup команда

sqlite> .help
[...]
.backup ?DB? FILE      Backup DB (default "main") to FILE

$ sqlite3
[...]
sqlite> create table mytable ( column1 text, column2 integer );
sqlite> insert into mytable values ( 'ENTRY1', 1 );  
sqlite> insert into mytable values ( 'ENTRY2', 2 ); 
sqlite> .backup main  temp.db
sqlite> .quit

$ sqlite3 temp.db
[...]
sqlite> .schema
CREATE TABLE mytable ( column1 text, column2 integer );
sqlite> select * from mytable;
column1     column2   
----------  ----------
ENTRY1      1         
ENTRY2      2         

вы должны предоставить имя файла в качестве аргумента для .сохранить команду, например:

sqlite> .save ex1.db

docs:http://www.sqlite.org/cli.html