插入SQL之前的Pb触发

时间:2019-01-06 15:33:47

标签: mysql triggers

我正在尝试在将列添加到表中之前检查列中的插入。如果插入为null,我想基于同一表的另一列分配一个值。

我的源表是“文章”,它包含以下列:id,titre,resume,contenu。 如果'resume'为空,我需要在'contenu'列中选择前150个字符来设置'resume'列。

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 :(得分:0)

如果要访问插入的行的列,则不需要SELECT,则可以使用new伪行。尝试更改分配:

...
SET NEW.resume = left(NEW.contenu, 150);
...