Changes between Version 32 and Version 33 of Трансакции


Ignore:
Timestamp:
06/15/25 18:12:09 (14 hours ago)
Author:
183175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Трансакции

    v32 v33  
    128128}
    129129}}}
    130 ова е уште еден пример каде се штити базата од внесување невалидни или несоодветни податоци.
     130ова е уште еден пример каде се штити базата од внесување невалидни или несоодветни податоци. \\
     131= Isolation
     132За да оправдаме дека некоја трансакција се извршува како да е единствената во системот, притоа \\
     133паралелните трансакции да не си влијаат меѓусебно додека се извршуваат, е единствен начин се гарантира точност на податоците.\\
     134\\
     135'''Пример 1 : FOR UPDATE '''\\
     136Во '''/order''' функција, кога правам ажурирање на залиха '''stock''', користам '''FOR UPDATE''':\\
     137{{{#!sql
     138const stocks = await client.query(
     139  `SELECT s.id_stock, s.quantity
     140   FROM stock s
     141   JOIN sizes sz ON s.id_size = sz.id
     142   WHERE s.id_product = $1 AND sz.size_label = $2
     143   ORDER BY s.created_at ASC
     144   FOR UPDATE`,
     145  [item.productId, item.size]
     146);
     147}}}
     148'''FOR UPDATE''' го заклучува тој ред во базата за тековна трансакција,\\
     149и тогаш други паралелни трансакции не можат да го менуваат редот  додека оваа трансакција не заврши.\\
     150На овој начин се спречува да има две нарачки кои истовремено ќе ги земат истите залихи,\\
     151што би довело до неконсистентна состојба.\\
     152= Durability
     153Една од целите на трансакции е трајност,што при нарачување би значело дека откако трансакцијата ќе биде потврдена,\\
     154промените се трајно зачувани. Дури и при пад на системот, податоците остануваат зачувани.\\
     155{{{#!sql
     156await client.query("COMMIT");
     157}}}
     158Конкретно кај нас во база, овој ред гарантира дека сите промени во трансакцијата се трајно запишани во база.\\
     159Дури и серверот ако падне веднаш по '''COMMIT''', базата гарантира дека тие податоци ќе бидат зачувани.\\