SQLite-使用外键插入-Python
我基本上有语法问题,在任何地方都找不到太多信息。 我有两张桌子。类别tb和信息tb 结核类 具有类别名称(文本)的列。 资讯科技及广播局 具有标题(文本)和类别id(整数) 我没有使用外键,我使用的是类别_tb的ROWID。 以下是SQL要求。基本上,我在使用Category_tb.ROWID作为外键将数据插入信息_tb时遇到了问题SQLite-使用外键插入-Python,python,sqlite,Python,Sqlite,我基本上有语法问题,在任何地方都找不到太多信息。 我有两张桌子。类别tb和信息tb 结核类 具有类别名称(文本)的列。 资讯科技及广播局 具有标题(文本)和类别id(整数) 我没有使用外键,我使用的是类别_tb的ROWID。 以下是SQL要求。基本上,我在使用Category_tb.ROWID作为外键将数据插入信息_tb时遇到了问题 title = 'Some title' categories = 'Crime' self.curr.execute("""
title = 'Some title'
categories = 'Crime'
self.curr.execute("""
insert into information_tb values (?,?)""",(
[title],
["""select ROWID from Category_tb where Category_tb.category_name = [categories] """]
))
任何帮助都将不胜感激。提前谢谢 insert语句的values子句应该是列名。它不能包含select语句。但是,可以使用select语句指定值 试试这个:
self.curr.execute("insert into information_tb (title, category_id) select ?, ROWID from Category_tb where Category_tb.category_name = ?",
(title, categories))
记得在事后提交以保存更改。这不完全是我想要的,但我有一个大致的想法。我想获取与类别匹配的类别的ROWID,并将该ID插入到信息的类别中。我写了这个问题,但仍然有一个错误,请看一看。self.curr.execute(““”插入信息\u tb(标题,类别\u id)值(?,从category.category=?)的类别中选择ROWID?”,(标题,类别[0])获取错误“sqlite3.OperationalError:near“select”:syntax error”@ahsanmukhtar您不需要
值(…
。请复制我给出的代码。我确实收到了此SQLite错误sqlite3.InterfaceError:绑定参数0时出错-可能是不支持的类型。@ahsanmukhtar您必须将值括在括号中:(标题,类别)
。括号很重要。