在插入触发器之前检查数据库中是否存在值

Before Insert Trigger to check a value exists in database

我想创建一个触发器,在发送新消息时更新数据库。 如果 SenderId 和 RecientId 已经有一个 conversationId,那么更新数据库使得 New.conversationId = existing conversationId.

Table: mailbox_message

创建一个触发器,每当用户 11 和 5 互相发送消息时将 conversationId 更新为相同的值。

delimiter $$
create trigger before_insert_conversationId
before insert on data25k29_mailbox_message
for each row
begin
    IF ( EXISTS (
            SELECT data25k29_mailbox_message.conversationId FROM data25k29_mailbox_message
            WHERE  (data25k29_mailbox_message.senderId='5'
            and data25k29_mailbox_message.recipientId = '11')
            and (data25k29_mailbox_message.senderId= '11'
            and data25k29_mailbox_message.recipientId= '5')
                )
        )    
    THEN
        SET NEW.conversationId = data25k29_mailbox_message.conversationId;
    ELSE
        SET NEW.conversationId = NEW.conversationId;
    END IF;
end 
$$

插入值后该值没有改变。非常感谢在这方面的任何帮助。谢谢

这是我对这个问题的工作片段。

Drop trigger if exists after_insert_conversationId;
delimiter |
CREATE TRIGGER after_insert_conversationId
before insert ON data25k29_mailbox_message
FOR EACH ROW

BEGIN
 Declare v1 int;
 select conversationId into v1 from data25k29_mailbox_message
 where senderId = new.senderId and recipientId = new.recipientId  limit 1;

 if v1 is NULL
then
set new.conversationId = new.conversationId;

else
set new.conversationId = v1;

End if;
END|