? I en relationsdatabas management system ( RDBMS ) som en SQL - baserad databas , " Lås " används för att stoppa användare från att ändra samma data samtidigt . Om en viss uppsättning data är låst , kan den inte manipuleras av en annan användare tills den första användaren tar av låset. Andra restriktioner kan tillämpas , t.ex. hindra andra användare från att läsa data tills den är upplåst , och det finns undantag från denna generella regel låsning . Det finns sex typer av lås i SQL . Delade Locks ( S )
En delad lås innehåller data för en enskild användare att läsa . Andra användare kan inte ändra data som innehas enligt ett gemensamt lås , men de kan läsa data . När data har lästs , är låset allmänhet avstått , med några undantag , t.ex. om transaktionen körs med READCOMMITTED eller READCOMMITTEDLOCK låsning isolering nivå . Delade lås används i skrivskyddade transaktioner endast , och kan inte användas för att ändra data .
Exklusiva Locks ( X )
ett exklusivt lås används för att förhindra en del av data som ändras genom en transaktion från att ändras av en annan transaktion . Som standard kan data under ett exklusivt lås inte läsas av någon annan än den locker , men denna inställning kan ändras genom att använda NOLOCK ledtråd eller ett READUNCOMMITTED isolering nivå . Denna typ av lås skulle användas med operationer som INSERT , UPDATE och DELETE .
Uppdatera Locks ( U )
En uppdatering låset sitter i mitten - marken mellan en delad lås och ett exklusivt lås . Om vissa uppgifter har ett exklusivt lås på det , kan ingen annan lås placeras på den . En uppdatering lås kan placeras på ett lås , som redan har ett delat lås på det , och när det blir dags att göra uppdateringar till data , uppdateringen lås förändringar till ett exklusivt lås . Endast en uppdatering lås kan placeras på en resurs vid varje given tidpunkt . En avsikt lock möjliggör en transaktion för att anmäla en annan transaktion i sin
Intent Locks ( I )
avsikt att låsa data - " . Intent lock " därav namnet De arbetar förhindrar transaktioner från att låsa ytterligare transaktioner från att låsa en högre del av databasen . Till exempel , placera en avsiktsförklaring lås på bordet hindrar annan transaktion från att placera ett exklusivt lås bordet , vilket skulle avbryta ett lås på en nedre del , såsom en rad eller en sida .
Schema Locks ( Sch ) och Bulk lås Uppdatering ( BU ) är
schema lås används med en operation som kräver schemat i tabellen är igång . Det finns två typer - ett schema Stability Lock ( Sch - S ) , som inte blockerar åtkomst till objektet uppgifterna , och ett schema modifiering lås , vilket gör blockera åtkomst till objektet uppgifterna . En massuppdatering lås , som namnet antyder , används av bulk operationer såsom bulk - kopiera data , och när TABLOCK ledtråd har specificerats . Addera