我可以连接到sqlite3中的数据库,附加另一个数据库并运行内部联接以从两个表中检索记录,每个数据库中有一个表。但是当我尝试对在命令行上运行的python脚本执行相同操作时,我没有得到任何结果 - 错误读取表(在附加数据库中)不存在。
将sqlite3导入为lite db_acts ='/ fulll / path / to / activation.db' db_sign ='/ fulll / path / to / sign_up.db'
def join_tables():
try:
con = lite.connect(db_acts)
cursor = con.cursor()
cursor.execute("attach database 'db_sign' as 'sign_up'")
cursor.execute("select users.ID, users.Email, users.TextMsg from sign_up.users INNER JOIN db_acts.alerts on sign_up.users.ID = db_acts.alerts.UID")
rows = cursor.fetchall()
for row in rows:
print 'row', row
con.commit()
con.close()
except lite.Error, e:
print 'some error'
sys.exit(1)
localhost上的响应与我刚刚运行测试的HostGator远程主机上的响应相同(此时它是一个没有用户输入的新站点)。从原始数据库连接中的表读取行没有问题 - 只读取附加数据库中的表。附件至少部分工作 - 在except子句中附加它的print语句表明数据库正在使用中。