-- Исправление триггера update_last_active для работы с messages и swipes -- Проблема: в messages есть sender_id, а в swipes есть user_id -- Удаляем старые триггеры DROP TRIGGER IF EXISTS update_last_active_on_message ON messages; DROP TRIGGER IF EXISTS update_last_active_on_swipe ON swipes; DROP FUNCTION IF EXISTS update_last_active(); -- Создаём функцию для обновления last_active для отправителя сообщения CREATE OR REPLACE FUNCTION update_last_active_on_message() RETURNS TRIGGER AS $$ BEGIN UPDATE profiles SET last_active = CURRENT_TIMESTAMP WHERE user_id = NEW.sender_id; RETURN NEW; END; $$ LANGUAGE plpgsql; -- Создаём функцию для обновления last_active при свайпе CREATE OR REPLACE FUNCTION update_last_active_on_swipe() RETURNS TRIGGER AS $$ BEGIN UPDATE profiles SET last_active = CURRENT_TIMESTAMP WHERE user_id = NEW.user_id; RETURN NEW; END; $$ LANGUAGE plpgsql; -- Создаём триггер для messages CREATE TRIGGER update_last_active_on_message AFTER INSERT ON messages FOR EACH ROW EXECUTE FUNCTION update_last_active_on_message(); -- Создаём триггер для swipes CREATE TRIGGER update_last_active_on_swipe AFTER INSERT ON swipes FOR EACH ROW EXECUTE FUNCTION update_last_active_on_swipe(); -- Проверка SELECT 'Triggers update_last_active fixed successfully' AS status;