Digamos que tienes un par de mesas:
Items
------------
ItemID
NumAvailable
-------------
Checkout
-----------
UserID
ItemID
-----------
Podría crear un disparador
que suma el ItemID
y se compara con el NumAvailable
para ese artículo en particular. Se vería así (puede tener errores, solo se presenta una idea general :) . El método de error obtenido de aquí
, puede haber una mejor manera disponible):
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