삽입 후 MySQL이 작동하지 않습니까? 왜요?
문제
다음과 비슷한 트리거를 만들었습니다.
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> CDR에 삽입 (Billsec, Userfield) 값 (60, 1); Query OK, 1 행 영향, 12 개의 경고 (0.00 초)
mysql> select total_seconds from foo where phone_id = 1;
+---------------+
| total_seconds |
+---------------+
| 0 |
+---------------+
편집 :이 특정 사례의 경고는 방아쇠에 영향을 미치지 않습니다. CDR 테이블에 기본값이없는 추가 열입니다. 단순성을 위해 삽입 문을 간략하게 유지했습니다.
해결책
12 개의 경고가 발생했습니다. 그들은 무엇인가?
ETA : 오, 잠깐만 ... 사용해야 해요 is not null
보다는 <> null
. 모든 비교 null
항상 돌아올 것입니다 null
.
제휴하지 않습니다 StackOverflow