Sobes.tech
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)
// Кейін балансын қауіпсіз жаңартуға болады, жол блокталғанын біле отырып