我们如何保存在sqlite3中创建的数据库

how we can save database created in sqlite3

我是数据库新手。我正在尝试创建一个数据库并在其中 table 。 但退出sqlite后无法保存并再次打开。 我在centOS上使用sqlite3 3.6.20,当我输入以下命令时

.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

并且在打印 .help 时 它不会显示任何与保存和打开现有数据库相关的命令。 提前致谢。

您应该提供一个文件名作为 .save 命令的参数,例如:

sqlite> .save ex1.db

文档:http://www.sqlite.org/cli.html

I am trying to create a database and table in it. but unable to save and open again after exiting from 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         

使用Sqlite3 ex1.db打开你的数据库。之后,所有查询将在您的数据库中生效。

也许尝试使用绝对路径而不是相对路径。

我在 VS Code 中使用 alexcvzz 的 SQLite 扩展。

当我使用相对路径时,出现错误。

CREATE TABLE test (id INTEGER, name TEXT);
INSERT INTO test (id, name) VALUES (1, "Hello");

.save ex1.db

当我使用绝对路径时,它起作用了。

CREATE TABLE test (id INTEGER, name TEXT);
INSERT INTO test (id, name) VALUES (1, "Hello");

.save /Users/zacharyargentin/databases/ex1.db

注意:在 VS Code 扩展中,您必须在 运行 查询之前选择一个数据库,因此我选择了 :memory: 数据库,这是默认的 in-memory 数据库。一旦你关闭连接,这个数据库就会自行删除(所以如果你想保留它,你必须像我在上面的例子中那样保存它)。