我只需要更改数据库的名称 看起来像 Alter database命令在sqlite中无效。
我的情景是 我现在有sqlite加密数据库我想重命名它。 manulay重命名db文件加密后无法正常工作。所以我试图使用命令更改dbname。看起来问题是由于加密。
答案 0 :(得分:11)
每个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是正确的,您可以重命名数据库文件,如果这是您要在此处执行的操作。
答案 1 :(得分:2)
SQLite中没有数据库名称,因为每个文件只有一个数据库。也许您想要做的是重命名SQLite文件。
答案 2 :(得分:1)
在最新版本的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>