如何根据用户决策在特定表中插入值

时间:2018-05-03 08:01:34

标签: python sqlite

我正在开发一个小项目,我需要根据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()

这里我一次又一次地定义表名,但是,我想自动给出这些名称?有人可以帮助我!

谢谢

1 个答案:

答案 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, ...)