[讨论] 请问PL SQL 有办法写Thread的功能吗?

楼主: april0910 (四月草)   2020-08-15 18:15:25
大家好
小弟才疏学浅,有个问题想了快一个星期想不透,上来向各位前辈请教;
事情是这样的,在java中,为解决多个使用者同时操作造成的冲突问题,
会有个Thread可作为解决方案。但在PL SQL中,小弟翻找了一些资料,似
乎没有类似Thrad的语法或解法。
目前情况假设(只能在SQL中寻找解决方案):
如果限定只用一个资料表与固定字段数的话,是想到一个方法,就是在其
中一个字段设置读取符号,符号分为“已进入处理中”或“已处理完成”
,如果有人先进来,就先把这个字段设为“已进入处理中”,处理完后,
会在把这字段改为“已处理完成”;而凡是一进来这个程序的人都要先读
取这个字段是否有“已进入处理中”,有的话就在外面等个一秒在进来重
覆执行,直到这个字段已不存在“已进入处理中”时,才会进来继续执行
。如此周而复始,但在一进入的这个时间点,还是卡在”同时”进入时,
仍无法获的解决…
请问这个就只能赌他就是只会差个几毫秒吗????
我实在想不出解法…拜托各位大神提点方向,谢谢Q_Q
作者: alihue (wanda wanda)   2020-08-15 18:20:00
RDBMS 原本就有交易机制,写好交易逻辑就不用担心这种事
作者: nyitalumnus (阿华)   2020-08-15 18:30:00
看一下RDBMS lock的章节吧!
作者: superpandal   2020-08-15 19:25:00
都是很不好的东西 费时费力 你可以找现成的超省时省力的
作者: ddoll288 (风儿卿卿)   2020-08-15 19:27:00
你可以用queue
作者: superpandal   2020-08-15 19:29:00
写再多也不会变成什么底牌 虚度光阴我说的是我自己当然更不会替别人写什么底牌
作者: marc47 (思乐冰)   2020-08-15 22:04:00
搞懂lock你就不会问这个问题了还有transaction
楼主: april0910 (四月草)   2020-08-15 22:20:00
好的,谢谢大家的指点,感激不尽
作者: yanhua1012 (彦)   2020-08-15 22:32:00
transaction isolation
作者: airtsubasa (伪学姊)   2020-08-15 23:09:00
用该笔资料是不是最新的想法来实作? data a同时被甲,乙同时打开,但甲先存盘,乙后存,要如何避免乙后存,在乙存盘时显示资料并非最新
作者: ga009900 (Lienfa)   2020-08-16 00:55:00
rowversion
作者: achaos (热~~~~)   2020-08-16 12:05:00
使用select for update语法google查一下上述语法,应该可以解决你的问题
作者: x246libra (楓)   2020-08-16 16:53:00
暴力法,效能最差最安全,把隔离层级改 serialize
作者: alan3100 (BOSS)   2020-08-16 21:16:00
你找ACID相关来看 现在有其他更复杂的方式大幅缩短lock

Links booklink

Contact Us: admin [ a t ] ucptt.com