【问题标题】:Dynamic table for Insert Syntax SQL - Python [duplicate]插入语法 SQL 的动态表 - Python [重复]
【发布时间】:2019-08-18 14:16:32
【问题描述】:

我想让 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",

【问题讨论】:

    标签: python mysql sql syntax


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!这是一个很好的有效观点。我会改变的。但我不认为这是我的错误的原因。
    • 如果不是或不仅是您的错误。请输出生成的查询并发布它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多