Junior — Middle
145
Деректер қорларында SELECT FOR UPDATE құрылымын пайдалану үшін қандай нұсқалар бар?
Сұралған компаниялар
Indrive
AI-дан жауап
sobes.tech AI
SELECT FOR UPDATE құрылымы дерекқорда таңдалған жолдарды блоктау үшін қолданылады, оларды ағымдағы транзакция аяқталғанға дейін басқа транзакциялар өзгерте алмайды. Негізгі қолдану жағдайлары:
- Бәсекелес қол жетімділікте деректер тұтастығын қамтамасыз ету. Мысалы, шот балансын жаңартқанда, қажетті жолдар алдымен блокталады, осылайша жарыс жағдайлары болдырылмайды.
- Қолданба деңгейінде блоктау механизмін жүзеге асыру. Бұл басқа транзакциялар таңдалған жазбаларды өзгерту немесе жою мүмкіндігін болдырмайды.
- Әртүрлі блоктау режимдерімен қолдану. Кейбір дерекқор басқару жүйелерінде
NOWAITнемесеSKIP LOCKEDкөрсетіп, блоктау тәртібін басқаруға болады.
PostgreSQL дерекқорын қолдана отырып, Go тілінде мысал:
row := db.QueryRow("SELECT balance FROM accounts WHERE id = $1 FOR UPDATE", accountID)
// Кейін балансын қауіпсіз жаңартуға болады, жол блокталғанын біле отырып