SQL триггер с CASE и EXISTS - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть 2 таблицы - «расходы» и «анализ категории». Мне нужно написать триггер, который выполняется после вставки на «расходы». Идея состоит в том, чтобы добавить новую запись в 'category_analysis', если нет записей, где 'category_analysis.category' = 'maintenance.category'.

Я написал что-то подобное, но это не так не работает Пожалуйста, помогите мне написать это правильно.

CREATE TRIGGER add_category_for_analysis
AFTER INSERT ON spendings_log
FOR EACH ROW
BEGIN
    CASE
        WHEN NOT EXISTS(
                    SELECT *
                    FOR category_analysis
                    WHERE (
                            category_analysis.cat_month = NEW.spendings_log.spending_month
                            AND category_analysis.cat_year = NEW.spendings_log.spending_year
                            AND category_analysis.user_id = NEW.spendings_log.user_id
                            AND category_analysis.category = NEW.spendings_log.category
                            )
                    )
    THEN
        INSERT INTO category_analysis
        VALUES (
                NEW.spendings_log.user_id,
                NEW.spendings_log.spending_month,
                NEW.spendings_log.spending_year,
                NEW.spendings_log.category,
                NEW.spendings_log.spending
                )
        END;
 END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...