我正在为一个学校项目开发一个电子商务网站,我需要在我的项目中添加一个触发器。
我选择添加一个触发器,当产品库存为零时,该产品被删除并添加到历史表中。
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 但没有被删除
最佳答案
我决定在另外两个触发器中切断我的触发器。 第一个是触发器,它在库存为零且正常工作时插入到表 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
关于mysql - 如何修复未删除的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55372688/