Когда я пытаюсь запустить операторы вроде:
cursor.executemany("""INSERT INTO `test` (`id`,`data`,`time_added`)
VALUES (%s, %s, NOW())""", [(i.id, i.data) for i in items])
MySQLdb, похоже, перекрывает) в NOW (), когда он расширяет список строк, которые нужно вставить, потому что он видит эту скобку как конец блока значений. То есть запросы выглядят так:
('1', 'a', NOW(), ('2','b', NOW(), ('3','c',NOW())
И MYSQL сообщает о синтаксической ошибке. Вместо этого они должны выглядеть так:
('1', 'a', NOW()), ('2','b', NOW()), ('3','c',NOW())
Должен быть какой-то способ избежать СЕЙЧАС (), но я не могу понять, как. Добавление 'NOW ()' в кортеж не работает, потому что тогда NOW () цитируется и интерпретируется БД как строка, а не как вызов функции.
Обойти это, используя текущую временную метку в качестве значения по умолчанию, не вариант - это пример, мне нужно делать подобные вещи с различными функциями БД, не только сейчас.
Спасибо!