首页 > 解决方案 > SQLITE3 说“表不存在”。找不到 *ib 文件?

问题描述

我正在用 Python 制作一个文本文件管理系统。我使用 sqlite3 创建了 2 个表,并在某一时刻比较了它们列的值。在这里,我收到 table-2 不存在的错误(这是一个 select 语句)。我检查了多个问题的答案,他们说我必须将 *ib 文件复制到我的目录中,但我找不到它们。我已经尝试了一切,但似乎没有任何效果。所有数据和 python 文件都存储在同一个文件夹中。任何帮助将不胜感激,谢谢。

这是每个人的代码(Chuck Norris 除外):

conn=Connection("User Data")
cur=conn.cursor()
cur.execute("CREATE TABLE if not exists U_Data (_UID INTEGER PRIMARY KEY AUTOINCREMENT, Fname varchar2 (15) NOT NULL, Sname varchar2 (15) NOT NULL, Uname varchar2 (15) UNIQUE, Password varchar2(15) NOT NULL);")
conn.commit()

fileconn=Connection("File Data")
filecur=fileconn.cursor()
filecur.execute("CREATE TABLE IF NOT EXISTS F_Data (_FID INTEGER PRIMARY KEY AUTOINCREMENT, UID INTEGER(1000000), FileName varchar2 (15), Date_ varchar2 (15))")
fileconn.commit()

cur.execute("CREATE TABLE if not exists U_Data (_UID INTEGER PRIMARY KEY AUTOINCREMENT, Fname varchar2 (15) NOT NULL, Sname varchar2 (15) NOT NULL, Uname varchar2 (15) UNIQUE, Password varchar2(15) NOT NULL);")

filecur.execute("CREATE TABLE IF NOT EXISTS F_Data (_FID INTEGER PRIMARY KEY AUTOINCREMENT, UID INTEGER(1000000), FileName varchar2 (15), Date_ varchar2 (15))")

cur.execute("insert into U_Data (Fname, Sname, Uname, Password) values (?, ?, ?, ?);", (fname, lname, uname, password))

filecur.execute("insert into F_Data (UID, FileName, Date_) values (?, ?, ?)", ( uid, filename, today))

filecur.execute("SELECT * FROM F_Data, U_Data where F_Data.UID=_UID.U_Data")

只有最后一条语句不起作用;数据被插入和东西。我认为问题出在最后一个语句中的 filecur.execute() 上?U_Data 的游标名为 cur。但是,我如何使它对他们俩都有效?一个游标名称可以用于多个游标吗?

标签: pythonsqlite

解决方案


正如@stovfl 所评论的,两个表只有在同一个连接中才能关联。


推荐阅读