python - 插入语法 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",
解决方案
您使用保留关键字作为字段名时间戳。如果你把它放在反引号中,你只能使用它,比如:
insert_stmt = ("INSERT INTO %s (system, value1, value2, `timestamp`) ""VALUES (%s, %s, %s, %s)")
data = (table, system, value1, value2, timestamp)
但让您的生活更轻松!不要使用关键字作为字段名!
推荐阅读
- javascript - 如何将我的变体样本连接到我的期权价值?
- node.js - 在 NodeJS 中对大型数组执行查询的最佳方法
- python - 二叉搜索树查找最小值不清楚
- flutter - 在 Flutter 类中处理布尔实例的问题
- javascript - useState 和 props 的变化
- java - 如何绑定firebase数据库用户和用户数据
- node.js - 由于 EPERM 错误,无法安装 mongoose
- django - django 将 ModelChoiceField 的“to_field_name”设置为多列
- swiftui - 更改页面时,SwiftUI TabView 内存占用不断增加
- java - Java 自己的 equals 方法在我的代码中无法正常工作