首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有SELECT语句的MySQL触发器

问带有SELECT语句的MySQL触发器
EN

Stack Overflow用户
提问于 2009-10-28 21:25:56
回答 1查看 10.9K关注 0票数 4

举个例子,假设我有一张桌子.

人(身份,现年)

人员团队(id,team,team)

一个人每年在公司工作时都会被指派一个团队。“个人团队”保存团队的记录。只有当“person”中的“currentyear”字段等于“personteam”中的“工作年”时,才允许插入到“personteam”中。

我想根据用户亲自存储的内容,在用户插入PERSON_TEAM时进行一些检查。所以我用select语句写了一个触发器。我不能百分之百肯定MySQL触发器的语法,所以希望这是有意义的.

在personteam插入之前创建触发器mytest触发器 每一行 从person p中选择currentyear @variablename,其中p.id = NEW.id如果@variablename != NEW.workyear错误 结束

有人能为这样的操作提供一个修改过的、经过修正的语法吗?

谢谢。

(这个例子很琐碎,所以我可以学习,所以请原谅它听起来是多么的毫无意义)

EN

回答 1

Stack Overflow用户

发布于 2009-10-29 13:44:43

根据MySQL标准,正确的处理方法是使用SIGNAL命令将错误抛回给客户端。由于这是一个前置触发器,触发器中的一个错误将阻止mysql继续并插入行。

然而,mysql还不支持信号,所以我们必须想出一种方法来造成任意的错误。

一种方法是调用一个不存在的过程,如图所示。

更好的方法是从此表中删除插入权限,而使用存储过程为您处理插入。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1640217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档