mysql 锁语句_mysql-笔记 事务 锁 语句
Start Transaction 或 begin [work] 開始一個事務,開始一個事務,引起其他未提交的事務提交,引起表鎖釋放
commit 提交事務,永久修改
rollback 回滾事務,撤消修改
set autocommit 在當前會話狀態下 啟用或不啟用 autocommit ,在當前會話中啟作用
使用start transaction autocommit 不可用,直到事務結束,autocommit 恢復到先前狀態
一些語句不能回滾 數據定義語句:create or drop database create drop alter table 或存儲規則
savepoint identifier 保存點-如果已存在 則刪除舊的生成新的
rollback [work] to [savepoint] identifier 回滾到保存點 不結束事務
release savepoint identifier 釋放保存點 從當前事務中的保存點集合中刪除保存點,不提交不回滾。如果不存在 則提示出錯
如果執行 沒有使用保存點的 commit /rollback沒有使用保存點,則刪除當前事務中的所有保存點。
調用函數或觸發觸發器時生成一個新的保存點級別,之前的保存點不可用。當調用函數或觸發器結束時,新的保存點 被釋放,之前的保存恢復可用狀態
---------------------------------------------------------------------------------------------------------
lock tables tbl_name {read | write} 可以在當前客戶端會話中 鎖定表 一個會員不能獲取其他會話的鎖或釋放其他會話的鎖
unlock tables 釋放當前會員中的鎖,在獲取一個新的鎖時會隱式釋放當前會員中的所有的表鎖,釋放全局讀取鎖
flush tables with read lock;
start transaction ; select * from t1; unlock tables;
鎖可以模擬事務 或 加快更新表的速度
表鎖可基于表或視圖。
使用 flush tables with read lock 可以鎖定所有數據庫中的所有表
需要鎖的會員需要獲取所有需要的鎖在lock tables 語句中。使用鎖定時,會員只能使用鎖定的表。如:
lock tables t1; select * from t1; select * from t2;提示出錯
不能在同一查詢語句中用同一名稱引用一個鎖定的表,可以使用別名代替
loct table t write,t as t1 read; insert into t select * from t as t1;
如果鎖定時使用別名,引用時也必須使用別名
loct table t as myalias read; select * from t as myalias;
總結
以上是生活随笔為你收集整理的mysql 锁语句_mysql-笔记 事务 锁 语句的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: java用构造方法定义book类_JAV
 - 下一篇: MySQL中改变相邻学生座位_力扣——换