当前位置: 代码迷 >> 综合 >> mysql触发器 注意事项(一)
  详细解决方案

mysql触发器 注意事项(一)

热度:75   发布时间:2024-02-05 21:44:10.0

虽然在开发项目中触发器很少使用(基本上都是靠代码来进行维护),但是这种触发器的思路我们可以借鉴,定义自己的hook事件,简单讲一下在触发器中遇到的一些问题。

 

1,创建触发器时,mysql数据表的存储引擎是innodb

2,navicate 创建mysql触发器:触发器是基于表的,右击表选择设计表,里面有触发器。

3,在mysql 目前5.7版本,触发器调用存储过程,存储过程不能使用动态sql ,另外存储过程中调用动态sql如下:

?
SET @sel_sql = CONCAT("SELECT COUNT(id) AS count FROM sample WHERE  is_del = 1",opt," AND last_commit_time >'",start_hour,"' AND last_commit_time < '",end_hour,"' ORDER BY last_commit_time into @datas"
);

 

其中,opt  和  start_hour  是传过来的变量。我这里面查询的数据 后续需要使用 所以我进行一个   into  @datas

 

上面这一步是进行拼接sql, 下面这一步是执行(详情可以百度)

;set @excutesql = @sel_sql;                         //可以不写
PREPARE stmt from @excutesql;                // 加载资源
execute  stmt;                                                 // 执行 
DEALLOCATE PREPARE stmt;                     //释放 资源
SELECT @datas INTO datas

 

以上纯属自己经验,有什么不对的地方还请大佬指正,本人qq:2468246227

  相关解决方案