繁体   English   中英

将元组列表插入到具有未知元组大小的 sqlite3 数据库中

[英]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 列,例如col1col2col3 ,那么您可以像这样插入新行:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM