Итак, я пытался выполнить этот запрос, используя python 2.7.15, используя mysql.connector.Но по какой-то причине он не работает и всегда возвращает ошибку: не все параметры были использованы.
У обновлений таблицы есть один первичный ключ, который называется «ID»
Этозапрос, который я пытался запустить этот SQL:
sql = "INSERT INTO updates (ID, insert_datetime, egroup, job_state) VALUES (%s,%s,%s,%s) ON DUPLICATE KEY UPDATE insert_datetime = VALUES(%s), egroup = VALUES(%s), job_state = VALUES(%s);"
mycursor.executemany(sql, jobUpdatesList)
Вот как выглядит один массив из массива jobUpdatesList:
[u'17281725', datetime.datetime(2018, 9, 10, 16, 11, 45, 724000), u'language', u'R', datetime.datetime(2018, 9, 10, 16, 11, 45, 724000), u'language', u'R']
Я сделал это, потому что считал, что нужно 7 параметров, потому что яесть 7% s
Я также попытался использовать всего 4 параметра, например:
sql = "INSERT INTO updates (ID, insert_datetime, egroup, job_state) VALUES (%s,%s,%s,%s) ON DUPLICATE KEY UPDATE ID = VALUES(%s), insert_datetime = VALUES(%s), egroup = VALUES(%s), job_state = VALUES(%s);"
mycursor.executemany(sql, jobUpdatesList)
Вот как выглядит один массив из массива jobUpdatesList:
[u'17281725', datetime.datetime(2018, 9, 10, 16, 18, 9, 268000), u'language', u'R']
но затем я получаю следующую ошибку:
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%s), egroup = VALUES(%s), job_state = VALUES(%s)' at line 1
Когда я пытался исправить эту ошибку, заменив VALUES (% s) на "% s", это сработало.За исключением того, что он заменил все поля на% s вместо значения.Я также попытался сделать это без% кавычек, например: egroup =% s, но я получаю ту же ошибку.
Я перепробовал много вещей, но я не могу заставить его работать.Что я делаю не так?