日期:2014-05-16  浏览次数:20759 次

如何高效地实现SELECT的同时更新某个字段?
我的表中有一个字段是timestamp,我希望执行一次select操作后,被select到的记录自动更新它的timestamp字段.

但是我不想分别用和select和update两次操作,因为select已经在数据库里面找到了记录,后面再调update的话数据库又会再搜索一次记录,耗时差不多就是两倍了.

有没有什么好办法来实现 "执行一次select操作后,被select到的记录自动更新它的timestamp字段 "呢?最好是能让总耗时跟一条select操作差不多.


------解决方案--------------------
应该可以用子查询吧?
------解决方案--------------------
那就建立触发器。
------解决方案--------------------
update时间跟select差不多?不可能,update和select同一信息至少耗时是2倍以上。除非你建立缓存,或者本身数据库就支持。

如果你是远程连接,那么考虑用事务,把所有的SQL一次发送。
------解决方案--------------------
select的同时执行update?

不可以。
------解决方案--------------------
可以在一个事务中分成多条SQL处理。