Соединение MySQL-python не видит изменений в базе данных, сделанных на другом соединении, даже после того, как изменение зафиксировано
Я использую модуль MySQLdb для Python (предварительно скомпилированный двоичный файл v1.2.3 для Windows Python 2.7) для чтения и записи данных в базу данных MySQL. Когда соединение открыто, я могу использовать это соединение для наблюдения за изменениями, внесенными в базу данных в том же соединении, но не вижу изменений, сделанных с использованием другого соединения, независимо от того, было ли другое соединение выполнено в Python или есть изменение, сделанное с использованием клиент командной строки MySQL. В случае, когда я делаю обновления с использованием Python, обратите внимание, что я выполняю команду commit () для соединения.
Пример программы, которая вставляет новые записи в тестовую таблицу с одним столбцом VARCHAR:
import MySQLdb
conn = MySQLdb.connect("localhost", "test", "test", "test")
c = conn.cursor()
c.execute("INSERT INTO test VALUES(%s)", ("Test",))
conn.commit()
c.close()
conn.close()
Пример программы, которая завершает печать с постоянным количеством записей (вместо того, чтобы печатать самый последний счетчик записей). Я только смог обновить счет, убив и повторно запустив скрипт или открыв новое соединение каждый раз, когдаSELECT
Заявление выполняется.
import MySQLdb
conn = MySQLdb.connect("localhost", "test", "test", "test")
while True:
input = raw_input("Enter anything: ")
if input == "exit":
break
c = conn.cursor()
c.execute("SELECT COUNT(*) FROM test")
res = c.fetchone()[0]
c.close()
print("Number of records: %d" % res)