我在一个学校项目的电子商务网站上工作,我需要在项目中添加触发器。
我选择添加一个触发器,当产品库存等于零时,将删除该产品并将其添加到历史表中。
CREATE TRIGGER stock_produit_0 BEFORE UPDATE
ON produit FOR EACH ROW
BEGIN
IF OLD.StockProduit = 0 THEN
INSERT INTO historique_produit(
idProduit,
PrixProduit,
PoidProduit,
NomProduit,
DescriptionProduit,
CouleurProduit,
idclient,
dateDelete)
VALUES(
OLD.idProduit,
OLD.PrixProduit,
OLD.PoidProduit,
OLD.NomProduit,
OLD.DescriptionProduit,
OLD.CouleurProduit,
OLD.idclient,
NOW());
DELETE FROM produit WHERE idProduit = OLD.idProduit;
END IF;
END
现在,触发器正在服务器上运行,但是,当我购买产品时,产品库存为0,但未删除
答案 0 :(得分:0)
我决定将扳机切成另外两个扳机。 第一个是触发器,当库存量为零且正在工作时,它将historique_produit插入表中。 但是现在,我已经编写了一些代码,当库存等于零时,该产品会将产品从产品中删除。 我不知道这是否可能。 如果不是,我想我会将产品保留在表格中,并且不会在显示产品的页面上显示
BEGIN
IF NEW.StockProduit = 0 THEN
BEGIN
INSERT INTO historique_produit(
idProduit,
PrixProduit,
PoidProduit,
NomProduit,
DescriptionProduit,
CouleurProduit,
idclient,
dateDelete)
VALUES(
OLD.idProduit,
OLD.PrixProduit,
OLD.PoidProduit,
OLD.NomProduit,
OLD.DescriptionProduit,
OLD.CouleurProduit,
OLD.idclient,
NOW());
END;
END IF;
END