select for update與autocommit關係
select for update與autocommit關係
一直以為,autocommit on時,select for update不會對行加鎖。今天測試了一下,結果出乎意料。
ORACLE10R2/ORACLE11R2 sqlplus中:
create table t(x int);
insert into t values(1);
commit;
測試1:
--會話1
set autocommit on
select * from t for update;
--會話2
delete from t;
--會話被阻塞
--在會話1提交後,會話2繼續執行。
測試2:
--會話1
set autocommit on
select * from t for update;
--會話2
delete from t;
--會話被阻塞
--會話1
delete from t;
已刪除 1 行。
提交完成。
--會話2
已刪除0行。。
測試3:
--會話1
SQL> insert into t values(1);
已建立 1 行。
提交完成。
SQL> select * from t for update;
X
----------
1
--會話2
delete from t;
--會話被阻塞
--會話1
SQL> insert into t values(2);
已建立 1 行。
提交完成。
--會話2
已刪除 1 行。
SQL> select * from t;
X
----------
2
==>會話1新提交的2沒有被刪除。
看來需要勤動手,不能想當然。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18922393/viewspace-1067682/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Process與Socket,Select與Accept關係
- select for update nowait 與 select for update 區別AI
- 關於 select ... for update 和 for update nowaitAI
- select for update
- Delete,insert,update與undo的關係[轉載TOM文章]delete
- oracle select for updateOracle
- 【MySQL】select for update 的Row Lock 與Table LockMySql
- SELECT ... FOR UPDATE SKIP LOCKED;
- select for update nowaitAI
- SQL update select語句SQL
- sql查詢更新update selectSQL
- Oracle中select ... for update的用法Oracle
- Default Locking for INSERT, UPDATE, DELETE, and SELECT ... FOR UPDATE (351)delete
- 與if的關係
- 深入理解SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE
- 關聯關係與依賴關係的區別
- MysqL_select for update鎖詳解MySql
- 使用select監視update的操作
- oracle connection,select,update 工作原理Oracle
- Cookie與Session 關係CookieSession
- 互動與關係
- 資料庫 - 關係代數與關係運算資料庫
- mysql update join,insert select 語法MySql
- mysql innodb之select for update nowaitMySqlAI
- UPDATE SET = (SELECT ) 語法的總結
- Windows Update與Microsoft UpdateWindowsROS
- Hadoop與Spark關係HadoopSpark
- Scala與Java的關係Java
- Object與Class的關係Object
- sip與openser的關係
- act與zsh的關係
- SQL與NoSQL(關係型與非關係型)資料庫的區別SQL資料庫
- Oracle中select for update ...一些區別Oracle
- SQLite語句(二):INSERT DELETE UPDATE SELECTSQLitedelete
- 【Mysql】兩條select for update引起的死鎖MySql
- Django筆記十三之select_for_update等選擇和更新等相關操作Django筆記
- TLS與SSL之間關係TLS
- 行高與字型的關係