Lad os sige, at du har et par borde:
Items
------------
ItemID
NumAvailable
-------------
Checkout
-----------
UserID
ItemID
-----------
Du kan oprette en trigger
der summerer ItemID
og sammenligner med NumAvailable
for den pågældende vare. Det ville se sådan ud (kan have fejl, kun en generel idé præsenteret :) . Metoden til fejl hentet fra her
, kan der være en bedre måde tilgængelig):
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