2017-08-02 184 views
0

我想在python中創建多個帶有名稱的內存中sqlite數據庫。在python中創建帶有數據庫名稱的內存中sqlite數據庫

在sqlite的命令行有可能這樣做與此語法:

':memory:' AS database_name 

但是在Python conenction字符串中使用它的時候是這樣的:

con = sqlite3.connect("':memory:' AS database_name") 

出現錯誤。

我的問題是我們如何在內存數據庫中創建多個名稱用於訪問它們。

我們如何在python中做到這一點?

回答

2

AS子句僅適用於ATTACH statement,但不適用於主數據庫(始終命名爲main)。

而數據庫的標識來自它的文件名,所以更改數據庫名稱將無濟於事。

要使用的內存數據庫自定義「文件」的名稱,使用URI file namemode參數:

conn = sqlite3.connect("file:blah?mode=memory", uri=True) 

但對另一個內存數據庫自定義數據庫名稱連接到同連接,只需執行ATTACH正常:

conn.execute("ATTACH ':memory:' AS db2") 
+0

你會告訴我一個我需要的例子嗎? –