Перед вставкой триггера, чтобы проверить, существует ли значение в базе данных - PullRequest
0 голосов
/ 21 октября 2019

Я хотел бы создать триггер, который обновляет базу данных при отправке нового сообщения. Если у SenderId и RecipentId уже есть идентификатор разговора, обновите базу данных так, чтобы New.conversationId = существующий идентификатор разговора.

Таблица: mailbox_message

enter image description here

Создайте триггер, который будет обновлять значение разговорного идентификатора, когда пользователи 11 и 5 отправляют сообщения друг другу.

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 
$$

Значение не изменяется после вставки значений. Любая помощь в этом отношении с благодарностью. Спасибо

...