我一直都在寻找有关TRIGGERS的知识,因为我对其中一些人的需求很大,但我尝试了多少 Mysql workbench 6.3 CE 不允许我创建它。看起来我的服务器是5.7并且我已阅读手册以供参考,但我仍然无法让它们工作。
DELIMITER $$
CREATE TRIGGER updateproductostock
BEFORE INSERT ON producto
FOR EACH ROW
BEGIN
NEW.prod_points = prod_price / 2;
END$$
DELIMITER ;
我有一个名为 producto 的表,其中包含id,description,price,stock和points。我想要做的是让积分值为价格值的一半。因此,如果产品的价格是100美元,则积分值将为50.
我无法创建触发器,mysql给我语法错误。
我还想制作一个触发器,其中 producto 的库存值取决于表订单。 订单包含订单ID,产品ID,描述和数量。因此,当我插入新订单时,我希望更改 producto 中库存的值。如果订单与产品的ID相同,那么我希望将订单数量添加到产品的库存中。
同样,mysql给了我语法错误。
我已经搜遍了整个地方并尝试了不同类型的语法,但是我收到了错误。我的mysql确实有触发器的选项。
或许有更简单的方法来做我想做的事情?请帮忙
答案 0 :(得分:0)
对于您展示的sql,我猜prod_price / 2
应为NEW.prod_price / 2
。
对于后一个问题,触发器需要在订单表上;但是,除非出现紧迫的性能原因,否则在容易计算它们时,通常不赞成保留这些值。我对你的问题的猜测是你的订单表是用关键字命名的,你忘了用`来正确地划分它。