【发布时间】:2018-11-11 04:57:49
【问题描述】:
我每分钟从热传感器接收 300 个值。这 300 个值需要插入到 SQLite 数据库中,因为它们每分钟都会收到。
我在 SQLite 数据库中创建了 302 行,第一列是 S_ID,第二列是 timestamp。这里,S_ID 每次添加一行时都会自动递增,timestamp 列的默认值是当前系统时间。我已经编程,每分钟接收 300 个热传感器值,将所有 300 个值放入名为 data 的列表中,然后将 data 插入数据库。现在,我需要知道如何编写executemany 语句而不写下所有300 个列名和?。
data = [(300, 2, 4, ..., 5.5)] #these are 300 values that are inserted into a list when received from heat sensor
c.executemany('INSERT INTO heat_table (col3, col4, ..., col302) VALUES (?, ?, ..., ?)', data)
【问题讨论】:
-
最佳实践是始终明确列出插入中涉及的列。虽然可能有一种方法可以在不命名列的情况下执行此操作,但如果您的表结构发生变化,它可能会中断。
-
编写代码来创建插入查询,而不是手动输入。
-
或者使用不需要 300 列的数据库设计。每分钟每个传感器一行的东西?
-
通常您会为每个传感器值写入一个 行,而不是在您的数据库中有 300 个 列。
-
您的列的实际名称是什么?
标签: python database sqlite insert bulkinsert