mysql - 如何修复未删除的触发器

标签 mysql sql triggers

我正在为一个学校项目开发一个电子商务网站,我需要在我的项目中添加一个触发器。

我选择添加一个触发器,当产品库存为零时,该产品被删除并添加到历史表中。

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/

相关文章:

sql - 为每一行插入一系列值的最简洁方法?

javascript - 如何在谷歌表单中仅邮寄填充值而不邮寄空白值?

mysql - Now() 其他格式

mysql - 更换 rails 中的立柱

mysql - SQLSTATE[HY000] [2002] 使用 whereHas 时 Laravel 中的连接被拒绝错误

MYSQL 语句不能产生准确的结果(SUM、IF 语句和 CASE)

c# - 将运算符传递给存储过程

mysql - Sql 'LEFT JOIN' 两个表,每个表都有 'Where' (不是连接条件)

jquery - 如何避免 jquery .click() 事件垃圾邮件

mysql - 查询数学运算与在 mysql 数据库中的固定列上使用更新触发器