从命令行创建空的SQLite数据库

ffvjumwh  于 2022-11-15  发布在  SQLite
关注(0)|答案(7)|浏览(295)

是否可以从命令行创建一个空的sqlite3数据库(例如sqlite3 <someoption> dbname),这将为我创建一个没有任何表的数据库文件,以便我可以从不同的SQL编辑器访问它?
目前,当我执行sqlite3 dbname时,我得到一个可以执行CREATE TABLE ...的SQLite提示符,但如果不这样做,当我退出时,不会创建任何文件。因此,我正在寻找一个命令,它可以为我创建一个空数据库,而不需要在该步骤中创建至少一个表。

kmb7vmvb

kmb7vmvb1#

使用VACUUM command创建有效的空SQLite数据库文件,包括根数据库页和数据库头。

sqlite3 file.db "VACUUM;"
hsvhsicv

hsvhsicv2#

我不认为只用一句话就能做到这一点。
在Linux中,我可以这样解决这个问题:

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

这将自动创建包含表的所需文件,然后将其删除,使数据库文件中没有表。这是我知道的最接近的事了。
无论如何,我认为大多数编辑甚至也会接受空文件。试一试吧。

wqlqzqxt

wqlqzqxt3#

您还可以在进入命令提示符时调用.database。
或者:

sqlite3 test.db ".databases"
r1zk6ea1

r1zk6ea14#

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

touch file.db

这将只创建一个大小为0的文件,并且可以用作空的SQLite文件。

tzdcorbm

tzdcorbm5#

只需创建一个空文件。

> test.db

符号“>”在这里表示重定向。

1szpjjfi

1szpjjfi6#

创建这样的空白数据库(由mosty-mostacho提供)的好处是被识别为有效的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
wlzqhblo

wlzqhblo7#

来自https://sqlite.org/cli.html
在命令提示符下输入“sqlite3”,然后可以选择后跟保存SQLite数据库(或ZIP存档)的文件的名称,以启动sqlite3程序。**如果命名的文件不存在,将自动创建一个具有给定名称的新数据库文件。**如果在命令行上没有指定数据库文件,则会创建一个临时数据库,并在“sqlite3”程序退出时自动删除。
我的重点是

相关问题