Почему функция "insert" не добавляет строки с помощью MySQLdb?

Я пытаюсь выяснить, как использовать библиотеку MySQLdb в Python (я новичок в лучшем случае для обоих из них).

Я после кода здесь, а именно:

cursor = conn.cursor ()
cursor.execute ("DROP TABLE IF EXISTS animal")
cursor.execute ("""
   CREATE TABLE animal
   (
     name     CHAR(40),
     category CHAR(40)
   )
 """)
cursor.execute ("""
   INSERT INTO animal (name, category)
   VALUES
     ('snake', 'reptile'),
     ('frog', 'amphibian'),
     ('tuna', 'fish'),
     ('racoon', 'mammal')
 """)
print "Number of rows inserted: %d" % cursor.rowcount
cursor.close ()
conn.close ()

Я могу изменить этот код для создания или удаления таблиц, но я не могу заставить его фактически зафиксировать INSERT. Он возвращает row.count значение, как ожидалось (даже когда я изменяю значение в таблице, оно меняется на то, что я ожидаю).

каждый раз, когда я смотрю в база данных с PHPMyAdmin вставок не производится. Как мне совершить INSERT в базе данных?

1 ответов


Вы забыли commit изменения данных, автокоммит отключен по умолчанию:

   cursor.close ()
   conn.commit ()
   conn.close ()

цитирую написание MySQL скриптов с Python DB-API документы:

" метод Connection object commit() фиксирует все внесенные изменения в текущей транзакции сделать их постоянными в базе данных. В DB-API, соединения начинаются с отключенного режима автокоммита, поэтому вы должны вызов commit () перед отключением или изменениями может быть потерянный."