我正在开发一个连接到 oracle 的网络应用程序。我们在 oracle 中有一个表,其中有一列“已激活”。任何时候只有一行可以将此列设置为 1。为了强制执行这一点,我们一直在 Java 中使用 SERIALIZED 隔离级别,但是我们遇到了“无法序列化事务”错误,并且无法找出原因。
我们想知道 READ COMMITTED 的隔离级别是否可以完成这项工作。所以我的问题是:
如果我们有一个涉及以下 SQL 的事务:
SELECT *
FROM MODEL;
UPDATE MODEL
SET ACTIVATED = 0;
UPDATE MODEL
SET ACTIVATED = 1
WHERE RISK_MODEL_ID = ?;
COMMIT;
鉴于可能同时执行多个这些事务,是否有可能多个 MODEL 行将激活标志设置为 1 ?
任何帮助,将不胜感激。