Python中带变量的INSERT INTO语句
我正在尝试把一个查询的结果插入到一个表格里,但我想在结果中加一个变量。我查了一些类似的问题,觉得我对查询变量的表示应该是对的,但我却遇到了“全局变量未定义”的错误。你能帮我指点一下方向吗?我猜这可能和我用变量表示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
谢谢!
2 个回答
2
你不需要做两个SQL查询来完成这个操作。相反,可以使用一种叫做INSERT的查询,格式是 INSERT INTO ... SELECT ...:
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()