Lagerreservering med SELECT ... FOR UPDATE

Transaksjonsmønster som hindrer oversalg.

Når bør du bruke scriptet?

Dette scriptet passer når du vil løse én konkret oppgave raskt, men fortsatt holde kvaliteten høy nok til at koden tåler å bli flyttet inn i produksjonsflyt senere.

Hvorfor er dette nyttig i WEBoracle?

WEBoracle kombinerer innhold, adminverktøy og backendflyt. Små, fokuserte scripts gjør det mulig å bygge funksjoner stegvis uten å blande alt inn i samme fil.

Kode

START TRANSACTION;

SELECT stock_quantity
FROM inventory
WHERE product_id = 42
FOR UPDATE;

UPDATE inventory
SET stock_quantity = stock_quantity - 1
WHERE product_id = 42
  AND stock_quantity > 0;

COMMIT;

Tilpasning

  • Bytt ut hardkodede navn og tabeller før produksjon.
  • Legg til logging hvis scriptet kjører i adminnære eller sikkerhetskritiske løp.
  • Pakk logikken inn i en tjeneste eller modul når du ser at den blir gjenbrukt.