Да кажем, че имате няколко маси:
Items
------------
ItemID
NumAvailable
-------------
Checkout
-----------
UserID
ItemID
-----------
Можете да създадете задействане
което сумира ItemID
и се сравнява с NumAvailable
за този конкретен артикул. Ще изглежда нещо подобно (може да има грешки, представена само обща идея :) . Методът за грешка, извлечен от тук
, може да има по-добър начин):
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