我在sqlite3数据库中有两个以上的表。我试图将数据插入一个表并在另一表中更新几列。有可能吗?
我试图以多种形状和形式使用executemany()和executescript()。我收到了一堆错误消息,主要是因为execute不会接受我的参数。
with sqlite3.connect('database.db') as conn:
cur = conn.cursor()
cur.executescript("""INSERT INTO prev_users (
imei_prev,
user_id_prev,
start_date,
end_date,
type_prev)
VALUES (?,?,?,?,?);
UPDATE phones
SET owner = (?), date = (?), state = (?)
WHERE imei = (?);
""",(user['imei'], user['user_id'], user['date'], date, user['type'], "None", date, "In Progress", user['imei']))
答案 0 :(得分:0)
executescript()
将不接受参数,因为它不将参数作为参数,而仅接受“脚本”。来自the doc:
执行脚本(sql_script)
这是一次一次性执行多个SQL语句的非标准便捷方法。它先发出COMMIT语句,然后发出 执行作为参数获取的SQL脚本。
sql_script可以是str的实例。
例如,它可能用于在一个脚本中创建多个表。
executemany()
对一系列参数运行一个sql。
这两种方法都不适合该工作。您可能必须将其分为两个对execute()
的调用。