我一直在搜寻有关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,描述,价格,库存和积分。我想做的是将积分值设为价格值的一半。因此,如果产品的价格为$ 100,则积分值为50。

我无法创建触发器,mysql给了我语法错误。

我还想触发一个触发器,其中producto的库存值取决于表格顺序。订单具有订单ID,产品ID,描述和数量。因此,当我插入新订单时,我想更改生产中的库存值(value)。如果使用相同的产品ID进行订单,则我希望将订单数量添加到产品的库存中。

同样,mysql给了我语法错误。

我到处搜索并尝试了各种语法,但出现错误。我的mysql确实有触发器选项。

或者,也许有一种更简单的方式来做我想做的事?请帮忙

最佳答案

对于您显示的sql,我猜prod_price / 2应该是NEW.prod_price / 2

对于后一个问题,触发器必须位于订单表上;但是,除非有迫切的性能理由,否则通常不愿在应该易于计算的时候保持这些值。我对您的问题的猜测是,您的订单表是用关键字命名的,而您忘记了用`正确地定界。

关于mysql - MySQL触发器不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41027650/

10-11 03:19
查看更多