INSERT触发器后我的MySQL无效?为什么?

时间:2008-10-21 17:56:27

标签: mysql database triggers

我创建了一个类似于以下内容的触发器:

delimiter //
CREATE TRIGGER update_total_seconds_on_phone AFTER INSERT
ON cdr 
FOR EACH ROW 
BEGIN
IF NEW.billsec > 0 AND NEW.userfield <> NULL THEN
UPDATE foo
SET total_seconds = total_seconds + NEW.billsec
WHERE phone_id = NEW.userfield;
END IF;

END;//

似乎没事。但是,当我需要时它似乎没有调用。这是一个例子:

mysql> select total_seconds from foo where phone_id = 1;
+---------------+
| total_seconds |
+---------------+
|             0 | 
+---------------+
1 row in set (0.00 sec)

的MySQL&GT;插入cdr(billsec,userfield)VALUES(60,1); 查询正常,1行受影响,12警告(0.00秒)

mysql> select total_seconds from foo where phone_id = 1;
+---------------+
| total_seconds |
+---------------+
|             0 | 
+---------------+

编辑:此特定情况下的警告不会影响触发器。它主要是附加列,它们在cdr表中没有导致警告的默认值。为了简单起见,我将INSERT语句保持简短。

1 个答案:

答案 0 :(得分:1)

产生了12个警告。它们是什么?

ETA:哦,等等......你需要使用is not null而不是<> null。与null的任何比较都将始终返回null