2012-06-01 48 views
1

我只需更改數據庫名稱 看起來像 更改數據庫命令在sqlite中無效。如何在sqlite中更改數據庫名稱?

我的場景是 我有sqlite加密數據庫,現在我想重新命名它。 manulay重命名db文件加密後不起作用。所以我試圖使用命令更改dbname。看起來問題是由於加密。

+0

你爲什麼需要它?你能分享一下嗎? –

+0

@YaqubAhmad,如果您在多數據庫環境中構建查詢,則需要明確指定名稱。將這些查詢複製到單數據庫環境將需要刪除數據庫名稱,除非您可以爲單數據庫提供與查詢所使用的名稱匹配的名稱。 – Patrick

+0

對'main'具體:http://stackoverflow.com/questions/7313190/can-i-name-sqlite-databases –

回答

2

SQLite中沒有數據庫名稱,因爲每個文件只有一個數據庫。也許你想要做的是重新命名SQLite文件。

+0

我試過,但原始文件是加密的,當我改變文件名相同的密碼不工作。 – sagar

10

每個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是正確的,你可以重命名數據庫文件,如果這是你在這裏要做的。

0

在最新版本的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> 
相關問題