我只需更改數據庫名稱 看起來像 更改數據庫命令在sqlite中無效。如何在sqlite中更改數據庫名稱?
我的場景是 我有sqlite加密數據庫,現在我想重新命名它。 manulay重命名db文件加密後不起作用。所以我試圖使用命令更改dbname。看起來問題是由於加密。
我只需更改數據庫名稱 看起來像 更改數據庫命令在sqlite中無效。如何在sqlite中更改數據庫名稱?
我的場景是 我有sqlite加密數據庫,現在我想重新命名它。 manulay重命名db文件加密後不起作用。所以我試圖使用命令更改dbname。看起來問題是由於加密。
每個sqlite文件都包含一個且只有一個數據庫。這個數據庫沒有名字。對於我所能記得的,第一個打開的數據庫有一個'虛擬'的名字main
,當你想要在附加補充數據庫時參考它。您可以選擇附加的數據庫的「虛擬」名稱。
[[email protected] 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是正確的,你可以重命名數據庫文件,如果這是你在這裏要做的。
在最新版本的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>
你爲什麼需要它?你能分享一下嗎? –
@YaqubAhmad,如果您在多數據庫環境中構建查詢,則需要明確指定名稱。將這些查詢複製到單數據庫環境將需要刪除數據庫名稱,除非您可以爲單數據庫提供與查詢所使用的名稱匹配的名稱。 – Patrick
對'main'具體:http://stackoverflow.com/questions/7313190/can-i-name-sqlite-databases –