Giả sử bạn có một vài bảng:
Items
------------
ItemID
NumAvailable
-------------
Checkout
-----------
UserID
ItemID
-----------
Bạn có thể tạo trình kích hoạt
tính tổng của ItemID
và so sánh với NumAvailable
cho mặt hàng cụ thể đó. Nó sẽ trông giống như thế này (có thể có sai sót, ý tưởng chung chỉ được trình bày :). Phương pháp cho lỗi thu thập được từ tại đây
, có thể có một cách tốt hơn):
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