проблема выполнения, MySQLdb - PullRequest
0 голосов
/ 28 сентября 2010

Я использую MySQLdb и сталкиваюсь со следующей проблемой:

STMT="""INSERT INTO test_table VALUES (%s, %s, %s, %s, %s)"""
rows=[('Wed Apr 14 14:00:00 2010', 23L, -2.3, 4.41, 0.83923)]

conn.cursor().executemay(STMT, rows)

приводит к:

Traceback (most recent call last):
  File "run.py", line 122, in <module>
  File "C:\Python25\lib\site-packages\mysql_python-1.2.2.0002-py2.5-win32.egg\MySQLdb\cursors.py", line 276, in _do_query
    db.query(q)
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value count at row 1")

Есть подсказки?

Ответы [ 2 ]

2 голосов
/ 28 сентября 2010

Попробуйте написать все столбцы в INSERT явно:

STMT = 'INSERT INTO test_table (col1, col2, col3, col4, col5) VALUES (%s, %s, %s, %s, %s)'
1 голос
/ 28 сентября 2010

Сколько всего столбцов в test_table?Вероятно, не 5, судя по ошибке.Попробуйте запустить SHOW CREATE TABLE test_table, чтобы увидеть, как определяется таблица.

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

INSERT INTO test_table (col1, col2, col3, col4, col5) VALUES (%s, %s, %s, %s, %s)

Вы должны изменить col1, col2 и т. Д. На ваши настоящие имена столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...