sql >> Databasteknik >  >> RDS >> Oracle

Oracle - Hur hanterar Oracle transaktionsspecifika DML-satser

Oracle skapar ett index för att upprätthålla den primära nyckelbegränsningen (ett unikt index som standard). När Session A infogar den första raden uppdateras indexstrukturen men ändringen genomförs inte. När session B försöker infoga den andra raden, noterar indexunderhållsoperationen att det redan finns en väntande post i indexet med just den nyckeln. Session B kan inte förvärva spärren som skyddar den delade indexstrukturen så den kommer att blockeras tills Session A:s transaktion slutförs. Vid den tidpunkten kommer Session B antingen att kunna förvärva spärren och göra sin egen modifiering av indexet (eftersom A rullade tillbaka) eller så kommer den att notera att den andra posten har begåtts och kommer att orsaka en unik begränsningsöverträdelse (eftersom A begått ).



  1. Installera mysql-python på macOS High Sierra

  2. MySQL:Hur hämtar man en slumpmässig rad eller flera slumpmässiga rader?

  3. Kan jag använda icke-aggregerade kolumner med gruppera efter?

  4. SQL-utvecklare startar inte