我正在开发一个小项目,我需要根据Slave Id将值插入到不同的表中, 例如,如果用户正在发送具有slave id 1的多个值,我需要在表中插入值" Instant_Values_S1"如果奴隶身份2我需要将值插入" Instant_Values_S2" 这是我的代码:
c.execute("INSERT INTO Instant_Values_S1 VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
(
1,
utctime,
data[0],
data[1],
data[2],
data[3],
data[4],
data[5],
data[6],
data[7],
data[8],
data[9],
data[10],
data[11],
data[12],
data[13],
data[14],
))
conn.commit()
conn.close()
这里我一次又一次地定义表名,但是,我想自动给出这些名称?有人可以帮助我!
谢谢
答案 0 :(得分:0)
AFAIK,这是SQL的一个已知限制:您可以使用值的参数,但不能使用表或列名称。但是SQL命令只是一个字符串,您可以使用Python来构建请求的静态部分。或多或少:
table_names = [None, "Instant_Values_S1", "Instant_Values_S2" ]
# will raise exception if slave_id is not 1 or 2
req = "INSERT INTO " + table_names[slave_id] + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
c.execute(req, (slave_id, ...)