mysql - 插入 SQL 之前的 Pb TRIGGER
问题描述
我正在尝试在将列添加到我的表之前检查它的插入。如果插入为空,我想根据同一张表的另一列分配一个值。
我的源表是“文章”,它包含以下列:id、tire、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 很陌生,我只是不知道如何解决我的问题。有小费吗?
解决方案
如果要访问不需要的插入行的列,则SELECT
可以使用new
伪行。尝试更改分配:
...
SET NEW.resume = left(NEW.contenu, 150);
...
推荐阅读
- python - 是否保证对 Pandas 数据框中的级别列表进行排序?
- ag-grid - 是否可以为 ag-grid 中的树数据组提供组件作为单元格渲染器?
- python - 将嵌套字典替换为空数据框
- javascript - 实施护照,收到错误的请求
- php - laravel 和 laravel 宅基地有什么区别
- javascript - 网页转换策略
- vb.net - 如何通过单元格单击事件以另一种形式显示数据网格视图行值,而不将 show 方法放在单元格单击事件中
- arrays - TableViewCell 删除然后所有复选标记迅速消失
- java - 如何在 Activity 中运行 Fragment?
- nsis - 如何使用本地文件夹中的 NSIS 脚本添加新页面以创建安装程序,而不是从程序文件 /NSIS 中获取它