pb在插入sql之前触发

siotufzp  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(286)

我正在尝试检查列中的插入,然后再将其添加到表中。如果插入为空,我想基于同一表的另一列赋值。
我的源表是'article',它包含以下列: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非常陌生,我就是不知道如何解决我的问题。有什么建议吗?

kknvjkwl

kknvjkwl1#

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

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

相关问题