Не удается получить правильный синтаксис SQL с помощью pymsql, ошибка 1064

0

Мой вывод работает в csv, но не при попытке вставить его в mysql. Я получаю следующую ошибку и не могу ее понять. Я новичок, поэтому я могу пропустить что-то очевидное. Такая же ошибка в Python 2x и 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")
  • 0
    Пробел между reddit и (site, ...) ?
  • 0
    Я уже пробовал, к сожалению, это не сработало
Показать ещё 2 комментария
Теги:
syntax-error
pymysql

1 ответ

0

KEY - зарезервированное слово на диалекте MySQL структурированного языка запросов. Видеть это. https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-8-0-detailed-K

Поэтому вы должны обматывать это имя столбца в разделителях всякий раз, когда вы это упоминаете.

Пытаться

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

Или, лучше, не используйте зарезервированные слова для имен столбцов в ваших таблицах. Следующий программист, работающий в вашей системе, поблагодарит вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню