当我的 MySQL 表更新时,如何收到电子邮件?

2024-04-18

您好,我想知道 MySQL 中是否有一种方法可以在 MySQL 表中添加一行时自动向自己发送电子邮件?


实现这一目标的最佳方法是使用触发器和 cron。创建一个“通知队列”表,并在将行插入所需表时使用触发器填充该表。

eg.

CREATE TABLE `notification_queue` (
  `notification_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `sent` tinyint(1) unsigned NOT NULL,
  PRIMARY KEY (`notification_id`)
);

然后定义一个简单的触发器:

DELIMITER $$
CREATE TRIGGER t_notification_insert 
AFTER INSERT ON [table_being_inserted]
FOR EACH ROW 
BEGIN 
    INSERT INTO `notification_queue` (`sent`) VALUES (0);
END$$
DELIMITER ;

从那时起,您需要做的就是在服务器上运行一个 crontab(比如每分钟),它从notification表在哪里sent = 0,发送通知并设置sent = 1

据我所知,这是在不读取 bin 日志的情况下从数据库中获取该信息的最佳方法。

如果您需要使用 cron 运行的脚本示例:

#!/bin/bash

DB_USER=''
DB_PASS=''
DB_NAME=''

ID=`mysql -u$DB_USER -p$DB_PASS $DB_NAME -Bse "SELECT notification_id FROM notification_queue WHERE sent=0 LIMIT 1;"`

if [[ ! -z $ID ]] 
then
    # SEND MAIL HERE
    RESULT=`mysql -u$DB_USER -p$DB_PASS $DB_NAME -Bse "UPDATE notification_queue SET sent=1 WHERE notification_id = $ID;"`
    echo "Sent"
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我的 MySQL 表更新时,如何收到电子邮件? 的相关文章

  • Mysql:磁盘已满错误

    我的 mysql 服务器有一些问题 120310 6 55 36 ERROR usr libexec mysqld Disk is full writing virtual cdrs MYD Errcode 28 Waiting for s
  • 带有多表查询的 SQL Join 版本的 Djangoviews.py

    需要一些有关 Django 版本的 SQL 多表查询的帮助 该查询使用 3 个表来检索餐厅名称 地址Restaurants table和美食类型来自Cuisinetypes table 所有这些都基于通过 URL 传递的菜品名称 菜品 ID
  • MYSQL枚举:@rownum,奇偶记录

    我问了一个关于为查询结果创建临时 虚拟 ID 的问题 mysql 和 php 查询结果的临时 虚拟 ID https stackoverflow com questions 4063998 mysql php temporary virtu
  • 我可以停止 CakePHP 获取查询的所有行吗?

    我正在使用 CakePHP 和 modelName gt find 调用选择相当多的行 可能是数百行 通常 在 PHP MySQL 中这当然不会成为问题 因为您在 while 循环中获取它们 但是 CakePHP 将所有行加载到一个数组中
  • 如何向多个涉及外键依赖的表插入数据(MySQL)

    我正在寻找将数据插入多个 MySQL 表的最佳实践方法 其中某些列是外键依赖项 这是一个例子 Table contacts contact id first name last name prof id zip code 联系人 表有主键
  • MySQL - 选择字符串的前 10 个字节

    各位聪明的男士女士们 大家好 如何选择字符串的前 x 个字节 用例 我正在优化产品描述文本以上传到亚马逊 亚马逊按 utf8 中的字节 不是我之前所说的 latin1 而不是字符来测量字段长度 另一方面 MySQL 似乎是基于字符进行操作的
  • Knexjs 返回 mysql 时间戳、日期时间列作为 Javascript Date 对象

    我正在使用 knex 并以格式插入数据YYYY MM DD HH mm ss e g 2017 07 14 15 00 00 保存后 当提取数据时 日期时间列值将作为 JavaScript Date 对象返回 我想以以下格式返回这些对象YY
  • 在 WPF FlowDocument 中的指定位置插入超链接

    我想以编程方式将 WPF 超链接元素插入 FlowDocument 中 目标是创建一个工具栏按钮 该按钮将获取 RichTextBox 中的一系列文本并将其替换为超链接 它与您在网络上看到的用于在 wiki 或博客 或 StackOverf
  • 如何在我的网站中创建全局搜索[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在我的网站中创建全局搜索 该网站是内部网站 无法在网上使用 我无法使用 Google 搜索来实现此目的 我的信息全部存储在不同的
  • 使用 KMS 的 AWS RDS 加密是否会影响性能?

    Amazon states https aws amazon com about aws whats new 2015 01 06 amazon rds encryption with kms mysql postgresql that 加
  • UUID 作为 MySQL id 列的默认值

    我正在尝试向 MySql 8 0 17 中的现有表添加一列 该列需要包含 UUID 我正在尝试将其设置为默认值 这是我正在执行的语句 ALTER TABLE myTable ADD COLUMN UUID varchar 36 NOT NU
  • 如何使用mac杀死mysql进程

    I used ps ax grep mysql检查mysql进程是否存在 我发现 5323 s000 S 0 00 00 grep mysql 我想终止该进程 但号码自动更改 当我进入ps ax grep mysql 内容变化如下 5507
  • 每次使用 COUNT() 函数,还是存储该值并将其加一?

    我有一个带有用户 投票 表和 用户 表的数据库 我认为数据库会在短时间内变得相当大 所以我想使用最有效的方法 我想我可以每次使用 投票 表中的 WHERE 语句来 COUNT 投票数 或者我可以将分数存储在 用户 表中 每次投票时将其增加
  • 安装MySQLdb(对于python)作为非压缩的egg

    安装说明是 python setup py build sudo python setup py install or su first 这给了我一个 egg 文件 如何告诉安装程序将文件转储为普通的未压缩库 Thanks 好吧 我不想回答
  • 使用 socket.io node.js 和传入消息的通知系统的架构实现和设计

    免责声明 我之前没有使用过node js 我以前没有使用过socket io 我正在考虑实现 Google Plus Facebook StackOverflow 风格的通知系统 我不是一个没有经验的开发人员 最终我会解决这个问题 但我只是
  • Laravel - SQL - SQLSTATE[01000]:警告:1265 第 1 行列“nsfw”的数据被截断

    我试图保护数据库中的一些数据并收到以下错误 SQLSTATE 01000 警告 1265 第 1 行的列 nsfw 的数据被截断 nsfw 列的标准值是 0 这是我的桌子 nsfw 列也在模型中 fillable array 我想检测是否选
  • 在没有条件的情况下,如何使查询不返回任何内容?

    相当简单 我有一对多 多对一关系 我想查询它 但是 当未提供任何 WHERE 子句信息时 我不希望返回任何结果 简单来说 如何使查询变得非贪婪 您可以添加一个始终为 false 的 where 子句 并附加您想要用 OR 提供的条件 sel
  • 使用Python mysql.connector远程连接MySQL

    以下代码 在同一 LAN 内与 mysql 服务器不同的机器上运行 使用 Python3 和 mysql connector 本地连接到 MySQL 数据库 import mysql connector cnx mysql connecto
  • mysql REGEXP 不匹配

    我有一个正则表达式 旨在捕获字符串中的电话号码 1 s d 3 s d 3 s d 4 我尝试使用以下查询在 MySql 数据库中查询此正则表达式 SELECT FROM everything instances meta AS m WHE
  • MySQL:错误 1215 (HY000):无法添加外键约束

    我读过了数据库系统概念 第六版 西尔伯沙茨 我将在 OS X 上的 MySQL 上实现第 2 章中所示的大学数据库系统 但我在创建表格时遇到了麻烦course 桌子department好像 mysql gt select from depa

随机推荐

  • 在查询索引/唯一字段时使用 MySQL“LIMIT 1”有什么意义吗?

    例如 我正在查询一个我知道将是唯一的并且已建立索引 例如主键 的字段 因此我知道这个查询只会返回 1 行 即使没有 LIMIT 1 SELECT FROM tablename WHERE tablename id 123 LIMIT 1 或
  • 如何使用 SSH 密钥和 Pageant 通过 Paramiko 连接到 SFTP

    我正在尝试使用受密码保护的 SSH 密钥通过 Paramiko 连接到 SFTP 我已将密钥加载到 Pageant 中 据我所知 Paramiko 支持该密钥 但我无法用它来解密我的私钥 我找到了这个例子here https stackov
  • 通过检索 JavaScript 值自动选择复选框

    自 1 周以来 我在一点上遇到了一些困难 我有 2 个数组 我想通过检索其中一个数组内的值来自动选择复选框 首先 我有一个循环 它根据第一个数组选项 创建一些复选框 每次我选中一个复选框时 文本字段都会用分隔符更新 我自己保存这个文本字段
  • MVVMCross 以编程方式更改启动 ViewModel

    可移植类库定义了启动视图模型 这种情况听起来不错 但我正在考虑这一点 您编写了一个 iOS 通用应用程序或 Android 需要更改其开始屏幕 视图模型 如果应用程序是手机 则默认视图模型是登录 但如果应用程序是平板电脑 则需要不同的视图模
  • 从 PHP 5.5 升级到 5.6 后,cURL 文件上传不再起作用

    从 PHP 5 5 升级到 5 6 后 我的 cURL 上传失败 aPost array file gt localFile default file gt html version html expiration gt 2 31 24 6
  • Spark SQL 未正确转换时区[重复]

    这个问题在这里已经有答案了 使用 Scala 2 10 4 和 Spark 1 5 1 和 Spark 1 6 sqlContext sql select id to date from utc timestamp from unixtim
  • 如何在Android中的seekbar下方显示分隔符值?

    我添加了一个seekbar我的一项活动 它的最大值是 5 现在 我想在搜索栏下方显示分隔符值 增量为 1 如 0 1 2 3 4 和 5 我怎样才能做到这一点 有没有什么系统方法可以实现这一目标 但我无法亲自动手 欢迎任何意见 注意 我想以
  • PHP Ajax上传进度条

  • 什么是消息边界?

    什么是 消息边界 在以下情况下 TCP 和 UDP 之间的区别之一是 UDP 保留消息 边界 我理解之间的区别TCP and UDP 但我不确定的定义 消息边界 由于 UDP 在每个单独的数据包中包含目的地和端口信息 因此是否可以为消息提供
  • 使用 terraform 将公共 GKE 更改为私有 GKE 集群

    如何将现有的GKE集群更改为GKE私有集群 我是否能够根据防火墙规则从互联网连接到 Kubectl API 还是应该拥有堡垒主机 我不想实施Cloud Nat or nat gateway 我有一个鱿鱼代理虚拟机 可以处理 Pod 的互联网
  • 如何使用 javascript/jquery 设置 asp 面板元素可见/隐藏

    我有一个asp Panel我的页面上的元素 我可以在后面的代码中设置其可见性 但我还需要通过 javascipt 隐藏它 My panel定义如下
  • 使用 docker-client api 将镜像推送到 docker 注册表

    在探索 docker client api java 时 设置与虚拟机上运行的 docker 守护进程的连接到底需要哪些证书 我在网上找到的代码 Create a client based on DOCKER HOST and DOCKER
  • Hibernate 单向一对多关联 - 为什么连接表更好?

    在本文档中 向下滚动到单向部分 http docs jboss org hibernate stable annotations reference en html single entity mapping association col
  • 自动替换在 emacs 中输入的某些文本字符串

    有一个小细节一直困扰着我一段时间 即我经常打字 inclued代替 include 如果不是很明显的话 我编写了大量 C 和 C 程序 这个拼写错误破坏了无数的构建并消耗了本来可以用来喝咖啡或冲浪的时间 当然 emacs 可以提供帮助并在我
  • 当 ExceptionMapper 创建响应时,未遍历 RestEasy 后处理拦截器链

    我正在使用 RestEasy 构建我的 Restful Web 服务 我已经实现了 ExceptionMappers 来准备特定的异常响应 我还实现了 MessageBodyWriterInterceptors 和几个 PostProces
  • EasyMock的使用方法

    期望似乎对我不起作用 package com jjs caf library client drafting import static org junit Assert import org easymock EasyMock impor
  • 用于从段落中删除所有属性的正则表达式

    我知道正则表达式通常不应该用于解析 html 内容 在我的特殊情况下 我需要它们 原因是 我使用 rte 编辑器 并且在粘贴到编辑器中时需要对段落属性进行一些替换 我有类似的东西 p text blah blah p 我需要删除所有属性 以
  • 数组中的clear方法

    我正在尝试创建一个清除方法来清除我拥有的数组 我已经看到使用清除方法是我所需要的 但我似乎无法使用它 list clear 我认为我必须做的 public void clear return doctors clear 顺便说一下 医生是一
  • 参数和属性之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 getAttribute 和 getParameter 之间的区别 https stackoverflow com questions 5243754 difference between getat
  • 当我的 MySQL 表更新时,如何收到电子邮件?

    您好 我想知道 MySQL 中是否有一种方法可以在 MySQL 表中添加一行时自动向自己发送电子邮件 实现这一目标的最佳方法是使用触发器和 cron 创建一个 通知队列 表 并在将行插入所需表时使用触发器填充该表 eg CREATE TAB