我有一张表warehouse
,其中包含有关商店中文章的信息(文章 ID 作为外键和数量)。然后,我有另一个表,shoppinglist
其中有一个客户 ID、文章 ID 和数量。可以说,该客户想购买 3 篇文章,但只有一篇文章可用。如何写一个trigger
帮助我防止买太多的东西?
我试过这个:
DELIMITER $$ CREATE TRIGGER check BEFORE INSERT ON shoppinglist FOR EACH ROW BEGIN IF warehouse.quantity < shoppinglist.quantity THEN CALL fail('You cant buy that much'); END IF; END $$ DELIMITER;
但这似乎不起作用。我的意思是,当我这样做时:
INSERT INTO shoppinlist (clients_id, article_id, quantity) VALUES (1, 2, 100);
仓库中只有 2 篇 id = 2 的文章,没关系,这是可能的。我做错了什么?