我一直在搜寻有关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/