5

我必须简单地更改数据库的名称,但似乎该ALTER DATABASE命令在 SQLite 中无效。

我的场景是我有一个 SQLite 加密数据库,现在我想重命名它。手动重命名 db 文件后,加密不起作用。所以我尝试使用命令更改数据库的名称。看起来问题是由于加密造成的。

4

3 回答 3

14

每个 sqlite 文件包含一个且只有一个数据库。这个数据库没有名字。据我所知,第一个打开的数据库有一个“虚拟”名称main,当你想引用它时,说当你附加补充数据库时。您可以选择附加的数据库的“虚拟”名称。

[someone@somewhere tmp]$ sqlite3 bla.db
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /tmp/bla.db                                  
sqlite> attach database 'example.db' as another_db;
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /tmp/bla.db                                  
2    another_db       /tmp/example.db       

否则 Laurent 是正确的,如果这是您在此处尝试执行的操作,您可以重命名数据库文件。

于 2012-06-01T07:15:59.323 回答
8

SQLite 中没有数据库名称,因为每个文件只有一个数据库。也许您想要做的是重命名 SQLite 文件。

于 2012-06-01T07:15:04.347 回答
2

在最新版本的 Sqlite3 中有.backup命令。

如果数据库不大,这可能是一个解决方案:

S:\>sqlite3 encrypted.db
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .backup new.db
sqlite> .q

然后

S:\>sqlite3 new.db
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> 
于 2012-06-15T20:06:53.637 回答