Ja - til en vis grad.
Hvor længe en SELECT
holder på en delt lås afhænger af transaktionens isolationsniveau:
READ UNCOMMITTED
- ingen delt lås er erhvervet overhovedet -UPDATE
er ikke blokeretREAD COMMITTED
- delt lås erhverves kun for varigheden af læsning af data -UPDATE
kan være blokeret i en meget kort periodeREPEATABLE READ
ogSERIALIZABLE
- delt lås erhverves og holdes på indtil slutningen af transaktionen -UPDATE
er blokeret indtilSELECT
transaktionen slutter
Teknisk set er UPDATE
sætningen får først en UPDATE
lås - som er kompatibel med en delt lås (som brugt af SELECT
) - så længe den læser de aktuelle værdier for de rækker, der skal opdateres.
Når det er gjort, vises Update
låsen eskaleres til en eksklusiv lås, så de nye data kan skrives til tabellen.