MySQL INSERT INTO问题内部触发器

时间:2012-08-03 18:29:07

标签: mysql triggers

我对MySQL触发器和程序代码一般都很新,所以这对我来说可能是一个愚蠢的错误。这里的代码不起作用。

CREATE TRIGGER add_to_cart
AFTER INSERT ON orders
FOR EACH ROW
BEGIN

SET @status = ‘S’;
SET @user = NEW.user_id;
SET @order = NEW.order_id;

SELECT count(*) INTO @shipped_count 
FROM orders
**WHERE (user_id = @user) AND (order_status = @status);**

SELECT MAX(priority) INTO @max FROM cart;

IF @max = 'NULL' THEN

SET @max = 0;

END IF;

SET @priority = @max + 1;

INSERT INTO cart VALUES (@user, @order, @priority);
**INSERT INTO log VALUES (@count, @user);**

END $$

触发器按预期工作,直到我在SELECT count(*)INTO shipped_count中包含WHERE子句。我可以计算订单表中的所有记录,但是当我尝试指定某些类型的记录时,它不起作用。

此外,粗体" INSERT INTO log"也出于某种原因失败,而完全相同的语法适用于直接位于其上方的INSERT。

帮助!谢谢。我一无所知。

1 个答案:

答案 0 :(得分:0)

尝试更换:

SET @status = ‘S’;

使用:

SET @status = 'S';

注意常规单引号而不是圆括号单引号。