使用python

时间:2016-11-03 18:17:37

标签: python sqlite

对于此示例,我在工作目录中有db_master.sqlitedb_1.sqlite

当我这样做时,一切似乎都运转良好:

import sqlite3
conn = sqlite3.connect('db_master.sqlite')
c = conn.cursor()
c.execute('ATTACH DATABASE "db_1.sqlite" AS db_1')
c.execute('SELECT * FROM db_1.my_table')
conn.commit()
c.fetchall()

我按预期收回了列数据。但是当我关闭连接并重新打开它时,数据库似乎不再附加。

conn.close()
conn = sqlite3.connect('db_master.sqlite')
c = conn.cursor()
c.execute('SELECT * FROM db_1.my_table')
c.fetchall()
  

OperationalError:没有这样的表:db_1.my_table

1 个答案:

答案 0 :(得分:4)

您将数据库附加到您的连接,而不是附加到特定数据库。每次创建新的数据库连接时都必须重新附加。

来自ATTACH DATABASE documentation

  

DynamicRealmObject语句将另一个数据库文件添加到当前数据库连接。

强调我的。