从命令行创建空sqlite db

时间:2013-11-22 22:27:48

标签: sqlite

是否可以从命令行创建一个空的sqlite3数据库(例如sqlite3 <someoption> dbname),这将为我创建一个数据库文件,没有任何表,以便我可以从不同的SQL访问它编辑器?

目前,当我执行sqlite3 dbname时,我会收到一个sqlite提示符,我可以从中执行CREATE TABLE ...但如果不这样做,当我退出时,不会创建任何文件。所以我正在寻找一个可以为我创建一个空数据库的命令,而不需要在该步骤中创建至少一个表。

6 个答案:

答案 0 :(得分:29)

我认为只有一种方法可以做到这一点。

在Linux中,我会以这种方式解决它:

sqlite3 aFile.db "create table aTable(field1 int); drop table aTable;"

这将自动创建包含该表的所需文件,然后将其删除而不使用表格。这是我所知道的最接近的事情。

无论如何,我认为大多数编辑都会接受一个空文件。试一试。

答案 1 :(得分:21)

您也可以在输入命令提示符时调用.databases。

或者:

$ sqlite3 test.db&#34; .databases&#34;

答案 2 :(得分:9)

只需创建空文件。

> test.db

符号“&gt;”这意味着重定向。

答案 3 :(得分:7)

简单的方法是在bash中使用命令

touch file.db

这只会创建一个0大小的文件,可以用作空的sqlite文件。

答案 4 :(得分:5)

使用VACUUM command创建一个有效的空SQLite数据库文件,包括根database pagedatabase header

sqlite3 file.db "VACUUM;"

答案 5 :(得分:2)

像这样创建一个空白数据库(由http://stylus-lang.com/提供)具有被识别为有效SQLite数据库的优势。比空文件好。

$sqlite3 foo.db "create table t(f int); drop table t;"

通过以下方式验证:

$file foo.db 
foo.db: SQLite 3.x database, last written using SQLite version 3024000