首页 > 解决方案 > 插入语法 SQL 的动态表 - Python

问题描述

我想让 SQL SYNTAX INSERT 代码对于要插入数据的表是动态的。当我尝试下面的代码时,我得到了 SYNTAX 错误,可能是因为它在表格周围添加了 '-marks。我该如何解决这个问题?

system=str(event['system'])
value1=str(event['value1'])
value2=str(event['value2'])
timestamp=str(event['timestamp'])
table=str('table1')    

insert_stmt = ("INSERT INTO %s (system, value1, value2, timestamp) ""VALUES (%s, %s, %s, %s)")
data = (table, system, value1, value2, timestamp)
cur.execute(insert_stmt, data)
conn.commit()

我的错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 ''table1' (system, value1, value2, timestamp) VALUES ('qwerty', '1', '1',' at line 1\" )", "errorType": "ProgrammingError",

标签: pythonmysqlsqlsyntax

解决方案


您使用保留关键字作为字段名时间戳。如果你把它放在反引号中,你只能使用它,比如:

 insert_stmt = ("INSERT INTO %s (system, value1, value2, `timestamp`) ""VALUES (%s, %s, %s, %s)")
data = (table, system, value1, value2, timestamp)

但让您的生活更轻松!不要使用关键字作为字段名!


推荐阅读