的這是我的觸發器:MySQL的觸發器 - 增加數量取決於插入值
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
問題N + 1
MySQL查詢插入$_POST['received']
價值爲instant_messages_a
。此值始終爲0或1.我想根據$_POST['received']
值增加messages_folders
表中的count_total
和new_messages
列的值。事情是這樣的:
count_total=count_total+$_POST['received']
new_messages=new_messages+$_POST['received']
我修改觸發:
... new_messages=new_messages+NEW.received ...
... inbox_count_total=inbox_count_total+NEW.received ...
但它不工作 - 在new_messages和inbox_count列中的值留更新後相同。爲什麼?
問題N 2
我只需要在messages_folders
表$_POST['subject']
值。我只是因爲觸發器需要用此值更新messages_folders
表而將它插入instant_messages_a
表中。有什麼辦法如何更新messages_folders table
...subject=NEW.subject...
沒有instant_messages_a
表中插入$_POST['subject']
。
請它一次一個問題。請定義不起作用,最重要的是。請__格式化您的代碼____0_ – e4c5
好的,對不起。不起作用 - 'new_messages'列中的值在更新後保持不變:'new_messages = new_messages + NEW.received' – user1406271
'received = 1 then new_messages = new_messages + NEW.new_messagesand when received = 0' ??? ? – Sami