同样的sql在两个oracle,sql – 从两个会话INSERT到唯一列相同的值(Oracle)
生活随笔
收集整理的這篇文章主要介紹了
同样的sql在两个oracle,sql – 从两个会话INSERT到唯一列相同的值(Oracle)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我有一個(gè)問題:
我有一個(gè)表T,其中一列具有唯一約束
CREATE TABLE T (ID NUMBER,
UNIQUE (ID));
會(huì)話1完成插入該表
INSERT INTO T(id) VALUES(1);
第2節(jié)嘗試將相同的值合并到該表
MERGE INTO t
USING (SELECT 1 col FROM dual) s
ON (t.id = s.col)
WHEN NOT MATCHED THEN
INSERT (id) VALUES (col);
此時(shí)會(huì)話2被阻止并等待會(huì)話1被提交或回滾.
現(xiàn)在我在第1節(jié)中運(yùn)行
COMMIT;
此時(shí)會(huì)話2中發(fā)生錯(cuò)誤
ORA-00001: unique constraint violated
有什么選擇我怎么能避免它?
附:問題是我在同一個(gè)表中INSERT到某個(gè)表和MERGE(在ON部分使用UNIQUE列).此INSERT和MERGE在兩個(gè)不同的會(huì)話中單獨(dú)調(diào)用.有時(shí)MERGE會(huì)因?yàn)樯厦婷枋龅那闆r而下降.
我希望我把它描述得可以理解
總結(jié)
以上是生活随笔為你收集整理的同样的sql在两个oracle,sql – 从两个会话INSERT到唯一列相同的值(Oracle)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 数据 导出 excel 自
- 下一篇: oracle11g安装到第7步,cent