回答

收藏

表更新时从MySQL触发器发送电子邮件

技术问答 技术问答 93 人阅读 | 0 人回复 | 2023-09-13

考虑一个表作为table2,我想补充一个trigger在此表update作为5 @# v' V& w' k  a  _: W& M
select Num into num from table1 where ID=new.id;
  ~, u9 S- o6 p$ m9 j8 H" `BEGIN* }9 d; a9 c. d% |3 w
DECLARE done int default false;9 B) E; q) A( Q5 c/ n: s3 v2 p0 w
DECLARE cur1 CURSOR FOR select EmailId from users where Num=num;
$ Q9 H" X$ K, Q9 `9 }& NDECLARE continue handler for not found set done = true;& M" _7 J% J, n9 p" \7 P1 c7 g
OPEN cur1;1 Z' t# p& \. q9 H# X7 G
my_loop: loop
( Q3 y4 ]9 P) }  Q    fetch cur1 into email_id;  P3 d0 y8 k( V' P9 B+ v* Y( `
    if done then
, E7 u$ I2 H2 H4 f0 b4 Z. f' l        leave my_loop;
- D- F1 D  ]$ M+ M4 T& H    end if;
8 _2 `$ h6 h& N    //send mail to all email id.5 Y0 b1 L4 d$ Z  E0 P4 ^4 p
end loop my_loop;
; @' O  j4 g- z5 `+ f; uclose cur1;
( L' w' W3 K" X5 D$ e: Y* GEND;( z- h) ~. s" P
有什么简单的方法可以在有评论的地方写东西吗?要将电子邮件发送到从table检索到的所有电子邮件ID中users。) x) _. m$ _5 m: d9 {
我在XAMPP(phpmyadmin)中使用MySQL。
* j% N2 |! ~+ m. v                2 Q$ L7 ?  m. O
解决方案:
& G$ W: M9 e$ U& }- i               
0 Q5 n: n# W3 m1 _1 {0 X  S2 L7 v5 {
( A% {- c3 r  q! j) I& {
6 h" ]4 y5 x) O+ c& q2 R                我反对这种解决方案。将发送电子邮件的负担放在数据库服务器中可能会非常糟糕。
" {+ s) v9 i" ^, A( {% }/ j在我看来,您应该做的是创建一个表,将要发送的电子邮件排队,并有一个过程检查是否有要发送的电子邮件,如果有则发送。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则