MySQL触发器Trigger加载以及目前局限
- GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
- GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。
- 作者: 亮
- 文章来源:GreatSQL社区原创
概念介绍
首先需要知道MySQL中触发器特点,以及表table相关触发器加载方式
- MySQL中单个trigger仅支持单事件触发即单个触发器不支持类似insert or update等多事件语法操作,如果需要多事件都能被同一个表触发,只能分别建立多个对应trigger。
- 触发器加载首先需要加载触发器分组列表Trigger_chain,后续再将具体触发器添加到Trigger_chain内。
- 表table属性内可包含多个触发器分组列表Trigger_chain,Trigger_chain用于加载不同类别的触发器,主要类别有insert、update或delete类型。
- 触发器分组列表Trigger_chain内m_triggers又可加载多个具体属于该分组的具体触发器。
触发器分组列表Trigger_chain加载过程
1.当打开表table时通过如下函数过程加载触发器分组列表Trigger_chain
函数open_tables->open_and_process_table->handle_table->add_tables_and_routines_for_triggers