Pb TRIGGER перед вставкой SQL - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь проверить вставку в столбце, прежде чем она будет добавлена ​​в мою таблицу. Если вставка пуста, я хочу присвоить значение на основе другого столбца той же таблицы.

Моя исходная таблица 'article' содержит следующие столбцы: id, titre, resume, contenu. Если «резюме» равно нулю, мне нужно выбрать первые 150 символов в столбце «contenu», чтобы установить столбец «резюме».

DELIMITER |
CREATE TRIGGER before_insert_article BEFORE INSERT
ON article FOR EACH ROW

BEGIN
    IF NEW.resume IS NULL
        THEN 
            SET NEW.resume = (SELECT LEFT (NEW.contenu, 150) FROM article WHERE NEW.id = article.id) ;
END IF ;
END |

DELIMITER ;

Так что ... конечно, это не работает. Я думаю, что понимаю почему, но, как будто я очень новичок в SQL, я просто не могу понять, как я могу решить мою проблему. Какие-нибудь советы?

1 Ответ

0 голосов
/ 06 января 2019

Если вы хотите получить доступ к столбцам вставленной строки, вам не нужен SELECT, вы можете использовать псевдоряд new. Попробуйте изменить назначение:

...
SET NEW.resume = left(NEW.contenu, 150);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...