[英]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.