可能问的不是地方,不过我觉得我大CNode,应该可以原谅占地行为… 有个诡异的触发器需求:某表插入一条记录,检测该记录,如果不满足条件,则在触发器中终止此次插入;否则,修改相关列,插入。目前使用的是before insert是来实现,但是不满足条件时,如何终止? 查了一些资料,说如果不满足条件时,则让MySQL抛出一个异常(故意查不存在的表啦,让主键冲突啦…),则本地插入终止。有其他可行方案?
8 回复
你这个需求必须用数据库来做 不能用程序实现? mysql本身触发器是没有终止语句的功能的 说实话触发器中不应该有过多的逻辑 触发器最好是执行一个 固定的指令 就像你说的 目前只能利用一个错误的语句 终止运行 或者改用自定义函数或存储过程来实现
@alsotang 你这样会有一个问题,多进程,多连接时, 1、A进程第一次查询可以插入条件; 2、B进程随后也过来一次查询,也是可以插入; 3、A进程决定插入 4、B进程也决定插入,楼主这样的需求肯定没有做唯一性约束,数据可能就乱了 其实我觉得楼主这样的需求,可能表设计,约束条件设定都有问题