python - 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。但是,我如何使它对他们俩都有效?一个游标名称可以用于多个游标吗?
解决方案
正如@stovfl 所评论的,两个表只有在同一个连接中才能关联。
推荐阅读
- corda - 在 Corda 中运行回溯事务
- sql - SQL UPDATE 语句抛出错误“无效使用组函数”
- python-3.x - 每次我运行这段代码时,它都会说 numpy.ndarray 没有属性“索引”
- etl - NiFi 控制器服务重用和模式注册表架构
- python - 我怎样才能找到数组中不变的点?
- reactjs - 如何将 React 服务作为单例、可注入和 Redux 连接
- python - 如何找到它们自己的行和列中最大的值?
- amazon-web-services - 修改 S3 存储桶后 CloudFront 不再工作
- python - 如何在 new_comment 页面上显示帖子名称
- javascript - 当状态更新为与 redux 相同的值时,组件未更新