我正在尝试将查询结果插入表中,但是将一个变量添加到结果集中。我看了一些类似的问题,我认为我正确地表示了查询变量,但我得到了一个“未定义的全局变量”错误。你能为我指出正确的方向吗?我猜这与我试图用变量表示SELECT语句的事实有关,但我不确定语法应该如何。
def main():
datadump()
d = datetime.date.today()
queryCurs.execute('SELECT * FROM data ORDER BY ac')
sqlresults = queryCurs.fetchall()
x,y,z = sqlresults
queryCurs.execute('INSERT INTO history VALUES (?,?,?,?)',
(d, x, y, z))
createDb.commit
谢谢!
答案 0 :(得分:2)
答案 1 :(得分:2)
您无需进行两次SQL查询即可完成此操作。而是使用INSERT INTO ... SELECT ...形式的INSERT查询:
conn=sqlite3.connect(...)
cursor=conn.cursor()
today = datetime.date.today()
sql='''
INSERT INTO history
SELECT ?, foo, bar, baz
FROM data
ORDER BY ac
'''
cursor.execute(sql,[today])
conn.commit()