Kodulehed
[374] - Andmebaasid II (ITI0207, IDU0230) (sügis 2019)
pinned Kiirvalik Kõige olulisemate tegevuste kiirvalik
Üldist
Materjalid Materjalide kataloogid
Vaated Erinevad väljavõtted kataloogides olevatest materjalidest. Alternatiivsed juurdepääsuteed materjalidele.
Isiklik Info ainult Sulle - teised kasutajad seda ei näe
Abi Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Abi / Kasutajatugi / Andmebaasisüsteemid (Üldine)

Avalikud küsimused ja vastused:
Teemad:

                         
Anonüümne:
Kas ja miks peab rutiinis või trigeris kasutama SELECT ... FOR UPDATE?
Vastus: Kas ... FOR UPDATE on vajalik sõltub kõigepealt kasutatavast andmebaasisüsteemist. PostgreSQLis ja Oracles on SELECT ... FOR UPDATE vaja kasutada siis, kui teete trigeri protseduuris või lihtsalt rutiinis mingi tingimuse kontrolliks päringu (SELECT lause) teise tabelisse või ka sama tabeli teiste ridade põhjal. Sellega tagate, et kui andmed, mille põhjal kontrolli teete, on parajasti muutmisel, siis jätkub Teie trigeri või rutiini töö alles siis, kui see muutmine on lõppenud ja on selge, millised on uued andmed. Lihtsalt SELECT seda ei taga, sest nii Oracle kui PostgreSQL kasutavad multiversioon-konkurentsjuhtimist (MVCC, multi-version concurrency control) ning andmete muutmine/kustutamine ei blokeeri nende samaaegset lugemist. SELECT ... FOR UPDATE üritab panna loetud ridadele eksklusiivse luku ja see ebaõnnestub, kui need read on juba eksklusiivselt lukustatud, st keegi parajasti muudab neid.



1.
Erki Eessaar:
2.
Anonüümne:
3.
Anonüümne:
4.
Erki Eessaar:
5.
Anonüümne:
6.
Anonüümne:
7.
Anonüümne:
8.
Anonüümne:
9.
Anonüümne: