MySQL中表有三个字段startTime,endTime,status三个字段,当时间到startTime时,自动更新status=1,当时间到endTime时,自动更新状态status=2,该怎么实现?
http://blog.csdn.net/u014656173/article/details/70260604
一般来说,这种情况不需要些触发器。 你在数据库层获取时间。在业务层,按照这个规则返回状态值就可以了
写一个job来查询这张表中status字段不为1和不为2的对象,遍历出来,当时间到startTime时,自动更新该对象的status=1,当时间到endTime时,该对象自动更新状态status=2,然后自己设置一下job的时间
数据库建表不合理,就一个控制时间就要占用三个字段,你确定这是一个码农干的事么,,数据库资源是非常宝贵的,,,数据库就是存取数据的,,逻辑要在逻辑层去实现,
如果你非要在数据库实现这种逻辑有两种方法:1,触发器,,这里我就不写了
2,循环执行一条sql:update tableName set status = (select status case when startTime = now() then 1 when endTime = now() then 2 end )
忠告:换思路