[英]Insert list of tuples into sqlite3 database with unknown tuple size
我目前正在将一个元组列表插入到一个带有 4 个变量的 sql 表中,如下所示:
conn.executemany('INSERT INTO table values (?,?,?,?)', values_list)
但是,我想通过允许解析的元组为任意长度(即任意数量的变量)来使其更加灵活。 有没有办法做类似下面的事情?
conn.executemany(f'INSERT INTO table values {(?)*len(values_list[0])}', values_list)
如果一个表有 3 列,例如col1
、 col2
、 col3
,那么您可以像这样插入新行:
INSERT INTO tablename(col1, col2, col3) VALUES (?, ?, ?)
或不枚举所有列名:
INSERT INTO tablename VALUES (?, ?, ?)
或者,如果您不想为其中一列传递值,请说col2
:
INSERT INTO tablename(col1, col3) VALUES (?, ?)
上述陈述有效,因为每个?
值将被传递到其各自的列。
但是这样的声明:
INSERT INTO tablename VALUES (?, ?)
会因错误而失败:
表 tablename 有 3 列,但提供了 2 个值
因此,除非您提供将接收传递值的列名,否则您不能向INSERT
语句传递更少的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.