Stel dat je een paar tafels hebt:
Items
------------
ItemID
NumAvailable
-------------
Checkout
-----------
UserID
ItemID
-----------
Je zou een trigger kunnen maken
dat is de ItemID
en vergelijkt met de NumAvailable
voor dat specifieke artikel. Het zou er ongeveer zo uitzien (kan fouten bevatten, alleen een algemeen idee :) . De methode voor fouten afgeleid van hier
, er is misschien een betere manier beschikbaar):
CREATE TRIGGER check_available
BEFORE INSERT ON Checkout
FOR EACH ROW
BEGIN
SELECT IF (COUNT(new.ItemID) > Items.NumAvailable) THEN
DECLARE dummy INT;
SELECT 'No more items to check out!' INTO dummy
FROM new NATURAL JOIN Items WHERE NEW.ItemID = Items.ItemID
END IF;
END