无法使用pymsql获取正确的sql语法,错误1064

afdcj2ne  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(449)

我的输出在csv中工作,但在尝试将其插入mysql时不工作。我得到下面的错误,并没有能够找出它。我是个新手,所以我可能遗漏了一些明显的东西。python2x和3x中也有同样的错误。

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key, title, content, start_date, end_date, initial_update) VALUES('reddit', 'h' at line 1")

mainDB_cnx = pymysql.connect(user='XXXX', password='XXXX',
                             host='XXXX',
                             database='Test', use_unicode=True, charset="utf8mb4")

with mainDB_cnx:
    mainDB_cursor = mainDB_cnx.cursor()
    mainDB_cursor.execute(
        "INSERT INTO reddit(site, site_url, key, title, content, start_date, end_date, initial_update) VALUES(%s, %s, %s, %s, %s, STR_TO_DATE(%s,'%%Y-%%m-%%d'), STR_TO_DATE(%s,'%%Y-%%m-%%d'), STR_TO_DATE(%s,'%%Y-%%m-%%d'))",
        (["reddit", "http://www.reddit.com", url, title, content, datetime.strptime(date,'%d %B %Y').strftime('%Y-%m-%d'), datetime.strptime('2018-07-25','%Y-%m-%d').strftime('%Y-%m-%d'), datetime.strptime('2018-07-25','%Y-%m-%d').strftime('%Y-%m-%d')]))
    print("Successful")
xhv8bpkk

xhv8bpkk1#

KEY 是结构化查询语言mysql方言中的保留字。看看这个。https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-8-0-k详细说明
因此,每当提到列名时,必须用分隔符将其括起来。
尝试

INSERT INTO reddit (side, site_url, `key`, title, ....

或者,最好不要在表中的列名中使用保留字。下一个在你的系统上工作的程序员会感谢你的。

相关问题