Sto lavorando a un'app Web collegata a Oracle. Abbiamo una tabella in oracolo con una colonna "attivata". Solo una riga può avere questa colonna impostata su 1 alla volta. Per far rispettare ciò, abbiamo utilizzato il livello di isolamento SERIALIZZATO in Java, tuttavia stiamo eseguendo l'errore "non è possibile serializzare la transazione" e non è possibile capire perché.READ livello di isolamento del database COMMESSO in oracle
Ci chiedevamo se un livello di isolamento di READ COMMITTED avrebbe svolto il lavoro. Quindi la mia domanda è questa:
Se abbiamo una transazione che coinvolge il seguente SQL:
SELECT *
FROM MODEL;
UPDATE MODEL
SET ACTIVATED = 0;
UPDATE MODEL
SET ACTIVATED = 1
WHERE RISK_MODEL_ID = ?;
COMMIT;
Dato che è possibile che più di una di queste operazioni da eseguire, allo stesso tempo, è vero essere possibile per più di una riga MODELLO per avere il flag attivato su 1?
Qualsiasi aiuto sarebbe apprezzato.
Simile, ma mi piacerebbe BLOCCO MODELLO in modalità esclusiva e fare un UPDATE MODELLO SET attivato = 0 WHERE attivato = 1 Meno file vengono aggiornati, quindi è un po 'più performante, e la tabella BLOCCO impedirebbe l'attività simultanee sul tavolo. –