Frage

Ich habe einen Trigger erstellt, die die folgenden ähnelt:

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;//

Es scheint durch in Ordnung zu gehen. Allerdings scheint es nicht aufgerufen wird, wenn ich es brauche. Hier ein Beispiel:

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

mysql> Einfügen in CDRs (billsec, Userfield) VALUES (60, 1); Abfrage OK, 1 Zeile betroffen, 12 Warnungen (0,00 sec)

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

EDIT: Die Warnungen in diesem speziellen Fall nicht den Abzug beeinflussen. Es ist vor allem zusätzliche Spalten, die keine Standardwerte in der cdr Tabelle, die die Warnungen verursachen. Aus Gründen der Einfachheit, hielt ich meine INSERT-Anweisung kurz.

War es hilfreich?

Lösung

Es gibt 12 Warnungen generiert. Was sind sie?

ETA: Oh, warten Sie ... Sie müssen is not null verwenden, anstatt <> null. Jeder Vergleich mit null wird immer wieder zurückkehren null.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top