문제

다음과 비슷한 트리거를 만들었습니다.

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top