mysql触发器可以用来阻止插入吗?

mysql触发器可以用来阻止插入吗?,mysql,sql,triggers,Mysql,Sql,Triggers,我有一个邮件队列表和一个电子邮件黑名单表。在整个代码中,对邮件队列表的插入是在无数个位置进行的。我的任务是阻止发送给黑名单上的人的电子邮件。如果地址在黑名单表中,是否可以在邮件队列表上触发拒绝插入的触发器 有没有更好的方法可以做到这一点?摘自《圣经》: 有时候,你甚至可以在工作环境中工作 对于每行限制。罗兰德·波曼 发现行计数()总是报告 触发器内有1个,但 触发器前的第一行。你可以 使用此选项可防止触发器的代码 从为每个受影响的行执行 每个语句只运行一次。 这和per语句不一样 触发器,但它是

我有一个邮件队列表和一个电子邮件黑名单表。在整个代码中,对邮件队列表的插入是在无数个位置进行的。我的任务是阻止发送给黑名单上的人的电子邮件。如果地址在黑名单表中,是否可以在邮件队列表上触发拒绝插入的触发器

有没有更好的方法可以做到这一点?

摘自《圣经》:

有时候,你甚至可以在工作环境中工作 对于每行限制。罗兰德·波曼 发现行计数()总是报告 触发器内有1个,但 触发器前的第一行。你可以 使用此选项可防止触发器的代码 从为每个受影响的行执行 每个语句只运行一次。 这和per语句不一样 触发器,但它是一种有用的技术 用于在之前模拟per语句 在某些情况下触发。这种行为 实际上可能是一个会 固定在某个点上,因此您应该使用 仔细检查并确认 在升级服务器时工作。 这里有一个如何使用这个的示例 黑客:

创建触发器伪语句\u触发器
在表上插入之前
每行
开始
声明v_row_count INT DEFAULT row_count();
如果v_行_计数为1,则
--你的代码在这里
如果结束;
结束;

可能的重复检查“可能重复”注释中的上述链接。它正是你所需要的——一个导致插入失败的数据库“插入前打开”触发器。谢谢你的回复,所以没有优雅的方式来回答这个问题?@Marc B:如果你在评论中插入这个链接,我可以接受。谢谢,但我不会为别人的回答打分。
CREATE TRIGGER fake_statement_trigger
BEFORE INSERT ON sometable
FOR EACH ROW
BEGIN
DECLARE v_row_count INT DEFAULT ROW_COUNT( );
IF v_row_count <> 1 THEN
-- Your code here
END IF;
END;