Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle (PL/SQL):UPDATE RETURNING è simultaneo?

Sì, almeno fino a un certo punto. Il primo utente a rilasciare quell'aggiornamento ottiene un blocco sulla riga. Quindi nessun altro utente può emettere con successo la stessa istruzione fino a quando l'utente numero uno non esegue il commit (o esegue il rollback). Quindi l'unicità è garantita.

Ovviamente, il cavillo riguarda la concorrenza. Il tuo accesso alla riga è serializzato, quindi non c'è modo per due utenti di ottenere un nuovo PRIKEY contemporaneamente. Questo non è necessariamente un problema. Dipende da quanti utenti hai che creano nuovi articoli e dalla frequenza con cui lo fanno. Un utente che rimuove i numeri nella stessa sessione non noterà nulla.