当前位置:  开发笔记 > 数据库 > 正文

什么是保持在SQL中LastUpdatedDate列的最佳方式?

如何解决《什么是保持在SQL中LastUpdatedDate列的最佳方式?》经验,为你挑选了2个好方法。

假设我有一个具有最后一次被更新或插入一列TIMEDATE数据库表.哪个更好:

    触发器更新该字段.

    让正在执行插入/更新的程序设置该字段.

第一种选择似乎是最容易的,因为我甚至不重新编译做到这一点,但是这不是一个真正的大问题.除此之外,我有麻烦的任何原因做了另一种思考.有什么建议?



1> Michael Hare..:

第一个选项可以更强大,因为数据库将维护该字段.这伴随着使用触发器的可能开销.

如果将来可以通过他们自己的界面将其他应用程序写入此表,我会使用触发器,因此您不会在其他任何地方重复该逻辑.

如果您的应用程序非常多,或者任何其他应用程序将通过相同的数据层访问数据库,那么我将避免触发器可以诱导并将逻辑直接放入数据层(SQL,ORM,存储过程等)的噩梦. ).

当然,在任何一种情况下,您都必须确保您的时间源(您的应用程序,用户的PC,SQL服务器)是准确的.


关于为什么我不喜欢触发器:

也许我把他们称为噩梦是轻率的.像其他一切一样,它们适合适度.如果你将它们用于非常简单的事情,我可以加入.

当触发器代码变得复杂(并且昂贵)时触发器开始引起许多问题.它们是您执行的每个插入/更新/删除查询的隐藏税(取决于触发器的类型).如果该税可以接受,那么它们可以成为工作的正确工具.



2> 小智..:

您没有提到3.使用存储过程更新表.该过程可以根据需要设置时间戳.

也许这对你来说不可行,但我没有看到它提到.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有