sql >> Databáze >  >> RDS >> Oracle

Zamkne Oracle celou tabulku při provádění příkazu DML nebo pouze řádek

Zámky můžeme vydávat explicitně pomocí příkazu LOCK TABLE. Další informace

Jinak vložka nezamyká žádné další řádky. Kvůli modelu izolace čtení Oracle existuje tento řádek pouze v naší relaci, dokud jej nepotvrdíme, takže s ním nikdo jiný nemůže nic dělat. Další informace .

Příkaz aktualizace uzamkne pouze dotčené řádky. Pokud jsme nezavedli pesimistickou strategii zamykání pomocí SELECT ... FOR UPDATE. Další informace .

Konečně, v Oracle spisovatelé neblokují čtenáře. Takže i zamčené řádky mohou být čteny jinými relacemi, jen je nelze změnit. Zjistit více .

Toto chování je zabudováno do jádra Oracle a není konfigurovatelné.

Justin má dobrou poznámku o zámku DDL na úrovni tabulky. Tento zámek způsobí, že relace spouštějící DDL na stole bude čekat, dokud se relace DML nepotvrdí, pokud není DDL něco jako CREATE INDEX, v takovém případě okamžitě selže s ORA-00054.



  1. Problémy se spuštěním Mysql | CHYBA! Server skončil bez aktualizace souboru PID

  2. podivné kódování znaků uložených dat, starý skript je ukazuje dobře, nový ne

  3. Správný způsob, jak uživatelům poskytnout přístup k dalším schématům v Oracle

  4. Spojení tabulek v Oracle SQL Developer