我创建了一个名为
database.db
的数据库。
当我在数据库中创建表时,出现错误
Error: file is not a database
,如下所示:
nehal@nehal-Inspiron-5559:~/Desktop/UAV$ sqlite3 database.db
SQLite version 3.20.1 2017-08-24 16:21:36
Enter ".help" for usage hints.
sqlite> CREATE TABLE users(
...> password varchar(10),
...> email text,
...> name text
...> );
Error: file is not a database
如何解决该错误?
创建不带
.db
扩展名的数据库。
sqlite3 users //this creates a database names users
使用密码创建数据库时可能会发生该错误。
因此
sqlite3_open
成功,但任何 sqlite3_exec
或 sqlite3_prepare
都将因此错误而失败。
您也可以使用
.开放用户
它还将创建数据库
并打开现有数据库 users.db 使用
.打开用户.db
如果不使用.db,将创建同名的新数据库
WPF 和 SQLiteAdministrator 使用 System.Data.SQLite 库在 WPF 代码中使用数据库->新建->SQLite 3 DB 选项创建 SQLite v3 DB 和“Data Source=whatever.s3db; Version=3”时出现同样的问题。
在 SQLiteAdministrator 中选择 Database->Migrate to SQLite3 选项即可解决问题。它对我有用。我希望这对某人有帮助。
我在下面遇到了同样的错误:
错误:文件不是数据库
因为我用
apple.db
或backup.sql
将.dump
导出到.schema
,如下所示:
sqlite3 apple.db .dump > backup.sql
或者:
sqlite3 apple.db .schema > backup.sql
然后,我访问
backup.sql
并尝试分别使用 .table
或 .schema
显示表及其架构,如下所示:
sqlite3 backup.sql
...
sqlite> .table
Error: file is not a database
或者:
sqlite3 backup.sql
...
sqlite> .schema
Error: file is not a database
实际上,正如错误所示,
backup.sql
不是数据库,因此不可能分别用.table
或.schema
显示表及其架构。