Я взял два подключения MySQL DB, используя модуль Python MySQLdb, а именно db
и db1
. Первое соединение используется для чтения таблицы, а второе соединение для обновления таблицы.
Ниже приведена последовательность кода, которую я использовал.
1: чтение идентификатора из пользовательской таблицы с использованием db
conncetion; текущее значение 'Y'
2: обновить идентификатор в таблице пользователей до 'N', используя db1
соединение.
3: чтение идентификатора из пользовательской таблицы с использованием соединения db
. Но в это время он дает значение «Y».
import MySQLdb
db = MySQLdb.connect("localhost","root","test007","db",charset='')
apikey="123"
cursor=db.cursor() ## fetching no. of data received in valid time range
cursor.execute("select id from USER where apikey=%s",(apikey,))
data=cursor.fetchone()
cursor.close()
print data #current value 'Y'
db1 = MySQLdb.connect("localhost","root","test007","db",charset='')
cursor=db1.cursor() ## fetching no. of data received in valid time range
cursor.execute("update USER set id='N' where apikey=%s",(apikey,))
db1.commit()
cursor.close()
db1.close()
cursor=db.cursor() ## fetching no. of data received in valid time range
cursor.execute("select id from USER where apikey=%s",(apikey,))
data=cursor.fetchone()
cursor.close()
print data
db.close()
На шаге 3 не отображается обновленное значение. Почему это происходит? Как я могу решить эту проблему, не закрывая соединение db
и выбрав другое соединение для чтения таблицы после обновления?
Это не фактическая реализация кода. DB1 на самом деле работает из другого файла. Для простоты я только что показал это.