Foxtable(狐表)用户栏目专家坐堂 → 触发器与跨表更新的疑问


  共有2348人关注过本帖树形打印复制链接

主题:触发器与跨表更新的疑问

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
触发器与跨表更新的疑问  发帖心情 Post By:2017/5/18 21:39:00 [只看该作者]

个人觉得用触发器中写代码跨表更新数据很方便,因为可以方便的从inserted和deleted表获取数据,只是感觉类似的代码要在insert,update,delete三个触发器中写三次,但也比在项目中写简单啊,  为什么 网上所有的人都讲尽量少用触发器而应该改用储存过程,但储存过程有时要获取一些动态的变量不是很方便,请问触发器会有什么问题吗?   谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/18 22:55:00 [只看该作者]

 也不是慎用,没什么大问题的。

 

 触发器比较隐蔽,不利于对数据的维护。有时候正常的结果,保存到数据库,就变了一个样,不利于你跟踪调试错误。

 

 至于性能上,多少会影响一些。


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/5/18 23:54:00 [只看该作者]

触发器可以一次性获取多行数据连接其他表进行跨表更新数据,不用一行一行的获取,还以为更高效,为何性能上还差啊.

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110594 积分:562866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/19 8:28:00 [只看该作者]

http://blog.csdn.net/jesse621/article/details/9452049

简单来说有2点原因是大多数人不喜欢用触发器的原因:

1、容易产生数据库死锁,并发性能低
2、数据的流转,业务的逻辑流程难以跟踪和控制。

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2017/5/19 9:03:00 [只看该作者]

狐表使用触发器好像save功能有异常

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 9:05:00 [只看该作者]

以下是引用jspta在2017/5/19 9:03:00的发言:
狐表使用触发器好像save功能有异常

 

怎么说?如何重现?


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/5/19 10:16:00 [只看该作者]

现在已经没有用狐表默认的save,改为直接用sql保存了.触发器主要用于根据出入库单据中的品质判断结果更新库存表中的即时库存.

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 10:19:00 [只看该作者]

 触发器使用没有问题的,只要注意一下就好了。你用sql语句、事务处理,也是可以的。你自行权衡利弊。

 回到顶部