oracle 并发请求跟踪,在保留在oracle数据库中的同时处理并发请求?
小編典典
要在網(wǎng)站上處理并發(fā),通常的做法是在每條記錄上都有一列,以便您檢查自獲得以來(lái)是否未更新。上次更新日期或順序版本號(hào)(由觸發(fā)器自動(dòng)遞增)。
通常,您將讀取數(shù)據(jù)(加上并發(fā)列)
SELECT seat,etc,version_no
FROM t1
WHERE column = a_value
然后,當(dāng)用戶最終準(zhǔn)備預(yù)訂座位時(shí),除非有更新,否則更新將起作用。
(版本號(hào)或更新日期將在每次更新后更改)
BEGIN
UPDATE t1
SET seatTaken = true
WHERE seatid = .....
AND version_no = p_version
RETURNING version_no INTO p_version;
EXCEPTION WHEN NOT_FOUND THEN
--Generate a custom exception
--concurrency viloation the record has been updated already
END;
自動(dòng)更新版本號(hào)的觸發(fā)器看起來(lái)像這樣
CREATE OR REPLACE TRIGGER t1_version
AFTER INSERT OR UPDATE ON t1
FOR EACH ROW
BEGIN
IF :new.version_no IS NULL THEN
:new.version_no := 0;
ELSE
:new.version_no := :old.version_no + 1;
END IF;
END;
2020-09-18
總結(jié)
以上是生活随笔為你收集整理的oracle 并发请求跟踪,在保留在oracle数据库中的同时处理并发请求?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: xctf php2,XCTF PHP2
- 下一篇: Windows版本Oracle审计日志,