Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite-使用外键插入-Python_Python_Sqlite - Fatal编程技术网

SQLite-使用外键插入-Python

SQLite-使用外键插入-Python,python,sqlite,Python,Sqlite,我基本上有语法问题,在任何地方都找不到太多信息。 我有两张桌子。类别tb和信息tb 结核类 具有类别名称(文本)的列。 资讯科技及广播局 具有标题(文本)和类别id(整数) 我没有使用外键,我使用的是类别_tb的ROWID。 以下是SQL要求。基本上,我在使用Category_tb.ROWID作为外键将数据插入信息_tb时遇到了问题 title = 'Some title' categories = 'Crime' self.curr.execute("""

我基本上有语法问题,在任何地方都找不到太多信息。 我有两张桌子。类别tb和信息tb

结核类 具有类别名称(文本)的列。 资讯科技及广播局 具有标题(文本)和类别id(整数)

我没有使用外键,我使用的是类别_tb的ROWID。 以下是SQL要求。基本上,我在使用Category_tb.ROWID作为外键将数据插入信息_tb时遇到了问题

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您必须将值括在括号中:
(标题,类别)
。括号很重要。