我对 Oracle 中的锁定主题感到困惑。就我的研究而言,您可以使用FOR UPDATE NOWAIT/WAIT来锁定行。
我想以这种方式实现我的锁定。一旦我发出FOR UPDATE,该行将被锁定,我可以检查突变。我有一个 versionNumber 列,每次更新表时都会增加 1。我可以使用这个 versionNumber 来验证行是否发生了变异?就像是
if (:new.versionNum != :old.versionNum)
raise_application_error(20000, 'Mutated');
end if;
我的问题是我应该在哪里实际编写代码行FOR UPDATE?我制作了一个小的 GUI 来处理更改名字并将它们保存回数据库。这是在该表上还是在我的 JDBC 客户端一侧的 oracle 触发器中完成的?
任何澄清都会很好!
谢谢