Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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
python sqlite-删除选定记录_Python_Sql_Sqlite - Fatal编程技术网

python sqlite-删除选定记录

python sqlite-删除选定记录,python,sql,sqlite,Python,Sql,Sqlite,我试图在python中使用sqlite3从表中删除选定的行。我的尝试失败了,但我不知道为什么 sql查询工作正常,但我无法在python代码中实现它 我有一组记录,它们在一段时间后从当前_表移动到存档_表 我想通过删除存档\u表中id匹配的行来清理当前\u表 预期SQL查询: 从当前_表中删除,其中id位于从存档_表中选择id中; 尝试的python代码: 导入sqlite3 def clean_upcurrent_表、archive_表: db=sqlite3.connectsqlite\u

我试图在python中使用sqlite3从表中删除选定的行。我的尝试失败了,但我不知道为什么

sql查询工作正常,但我无法在python代码中实现它

我有一组记录,它们在一段时间后从当前_表移动到存档_表

我想通过删除存档\u表中id匹配的行来清理当前\u表

预期SQL查询:

从当前_表中删除,其中id位于从存档_表中选择id中; 尝试的python代码:

导入sqlite3 def clean_upcurrent_表、archive_表: db=sqlite3.connectsqlite\u db cursor=db.cursor sql_query_delete='delete FROM%s,其中id在SELECT id FROM%s;'%当前\u表、存档\u表 尝试: cursor.executesql\u查询\u删除 db.commit db.close 除: 打印错误删除
现在正在工作。数据库文件已被另一个进程锁定。删除了无意义的try/except之后,我找到了详细的错误消息。

您无法找出原因,因为您已经捕获并隐藏了会告诉您原因的错误消息。删除那个毫无意义的try/except,让Python准确地告诉您出了什么问题。然后,不允许使用param for sql对象作为表名或列名。。可能您需要基于字符串concat的此sql代码的dinamic sql尝试此sql\u query\u delete=“从%s中删除,其中从%s中选择id中的id;”,[当前_表、存档_表]