Das ist mein Auslöser:MySQL Trigger - zunehmende Zahl der eingelegten Wert je
CREATE TRIGGER instant_messages_a BEFORE INSERT ON messages_messages
FOR EACH ROW
BEGIN
IF NEW.received = 1 THEN
INSERT INTO messages_folders (id, addressee, sender, count_total, updated_time, nickname, subject, ipadr, new_messages, photo) VALUES
(NULL,NEW.addressee_id,NEW.sender_id,1,UNIX_TIMESTAMP(NOW()),NEW.nickname,NEW.subject,NEW.ipadr,1,0)
ON DUPLICATE KEY UPDATE count_total=count_total+1,updated_time=UNIX_TIMESTAMP(NOW()),subject=NEW.subject,ipadr=NEW.ipadr,new_messages=new_messages+1,photo=NEW.photo;
ELSE
INSERT INTO messages_folders (id, addressee, sender, count_total, updated_time, nickname, subject, ipadr, new_messages, photo) VALUES
(NULL,NEW.addressee_id,NEW.sender_id,1,UNIX_TIMESTAMP(NOW()),NEW.nickname,NEW.subject,0,0,0)
ON DUPLICATE KEY UPDATE count_total=count_total+1;
END IF;
END
Frage N 1
MySQL Query $_POST['received']
Wert in instant_messages_a
einfügt. Dieser Wert ist immer 0 oder 1. Ich möchte die Werte count_total
und new_messages
Spalten in messages_folders
Tabelle abhängig von der $_POST['received']
Wert erhöhen. Etwas wie folgt aus:
count_total=count_total+$_POST['received']
new_messages=new_messages+$_POST['received']
I modifiziert, um den Auslöser:
... new_messages=new_messages+NEW.received ...
... inbox_count_total=inbox_count_total+NEW.received ...
Aber es funktioniert nicht - die Werte in neue_nachrichten und inbox_count Spalten die gleiche nach dem Update bleiben. Warum?
Frage N 2
Ich brauche $_POST['subject']
Wert nur in messages_folders
Tabelle. Ich füge es auch in instant_messages_a
Tabelle ein, nur weil der Trigger messages_folders
Tabelle mit diesem Wert aktualisieren muss. Gibt es eine Möglichkeit, wie messages_folders table
...subject=NEW.subject...
zu aktualisieren, ohne $_POST['subject']
in instant_messages_a
Tabelle einfügen.
Bitte es eine Frage auf einmal machen. Bitte definieren funktioniert nicht und am wichtigsten von allen. Bitte __formatieren Sie Ihren Code__ – e4c5
ok, tut mir leid. Funktioniert nicht - die Werte in der Spalte "new_messages" bleiben nach dem Update gleich: 'new_messages = new_messages + NEW.received' – user1406271
wenn 'received = 1 dann new_messages = new_messages + NEW.new_messagesand was wenn empfangen = 0' ??? ? – Sami