python 多人连接mysql 进行事务操作 对mysql加锁与释放锁
生活随笔
收集整理的這篇文章主要介紹了
python 多人连接mysql 进行事务操作 对mysql加锁与释放锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python 多人連接mysql 對mysql進行事務操作 對mysql加鎖與釋放鎖
下面這個是user1代碼塊
# -*- coding: utf-8 -*- # user1 import pymysql import timeconn = pymysql.connections.Connection(host="localhost", user='debian-sys-maint', password='wL5wsDKDub4gT2EU',database='python3_1', port=3306, charset='utf8') cusor_1 = conn.cursor()sql = "update students set name='huanghaibo' where id=2" cusor_1.execute(sql) time.sleep(20) print('awaken') conn.commit() cusor_1.close() conn.close()下面這個是user2代碼塊
# -*- coding: utf-8 -*- #user2 import pymysql import timeconn = pymysql.connections.Connection(host="localhost", user='debian-sys-maint', password='wL5wsDKDub4gT2EU',database='python3_1', port=3306, charset='utf8') cusor_1 = conn.cursor() print('successfull connect')sql = "update students set name='wewewe' where id=2" cusor_1.execute(sql) print('test execute') conn.commit() print('test commit') cusor_1.close() conn.close()可以粘貼下來自己執行以下 看看 print語句怎么輸出的 ,其實就很清楚了
user1 用戶 連接數據庫后 進行了對id=2的這一行數據進行修改操作,這時候user1就獲得了一把鎖 ,是對id=2 這一行數據進行加鎖, sleep(20) 20秒內,一直到 commit()執行 之前這段時間 都出于加鎖狀態,直到 commit()執行,user1就會釋放該鎖
這段時間內 user2用戶雖然連接成功數據庫,但是也想操作id=2這一行的數據,就會進入阻塞狀態,一直會等待到 user1 commit() 方法執行完成以后,user2又會獲得id=2這一行數據的鎖,來對這一行數據進行操作,直到commit()執行后,又會釋放該鎖
總結
以上是生活随笔為你收集整理的python 多人连接mysql 进行事务操作 对mysql加锁与释放锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都大熊猫繁育基地距离哪个火车站近
- 下一篇: 在MySQL数据库建立多对多的数据表关系