作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在理解 sql 中的函数和触发器时遇到了一些麻烦。我没有发布过程 chkInsertAritcle 的代码,但可以说如果它设法进行更改则返回 NEW,否则返回 NULL。
所以我的问题是关于触发器的。如果我把 AFTER INSERT 放在那是否意味着它将完成 INSERT 而不依赖于返回值?还有什么其余行会发生什么情况?
下一个问题是如果我把 BEFORE INSERT 放在前面,代码会以什么顺序运行?
谢谢!
CREATE TRIGGER ArticleIns
AFTER INSERT ON ListOfArticles
FOR EACH ROW
EXECUTE PROCEDURE chkInsertArticle();
最佳答案
首先所有BEFORE
触发器按字母顺序运行,然后执行操作,然后所有AFTER
触发器按字母顺序运行。
每个操作都将前一个操作的结果视为输入,如果任何触发器返回 NULL,则停止对该行的处理。因此,如果 BEFORE
触发器返回 NULL,DML 操作将不会发生。
对于受触发 DML 语句影响的每一行,这都是独立发生的。
关于sql - 从函数返回的触发器如何影响 BEFORE 或 AFTER 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56757497/
我是一名优秀的程序员,十分优秀!