Я использую модуль MySQLdb для Python (v1.2.3 precompiled binary для 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()
Пример программы, которая заканчивает печать постоянного количества записей (вместо того, чтобы печатать самое последнее количество записей). Мне удалось обновить счет, убив и перезапустив script, или открыв новое соединение каждый раз, когда выполняется оператор 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)