当你运行类似于:
UPDATE table SET datetime = NOW();
在具有1 000 000 000条记录的表上,查询需要10秒才能运行,所有行是否具有完全相同的时间(分钟和秒),还是会有不同的时间?换句话说,是时候是查询开始还是每行更新?
我正在运行MySQL,但我认为这适用于所有dbs.
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_now
"NOW()返回一个表示语句开始执行的时间的常量时间.(在存储的例程或触发器中,NOW()返回例程或触发语句开始执行的时间.)这与SYSDATE()的行为,它返回从MySQL 5.0.13开始执行的确切时间."
如果最终结果对您很重要 - 首先测试,仅仅因为它应该按照文档记录工作,并不意味着它会.如有疑问,请测试!
分配NOW()
给变量,然后使用变量更新日期时间:
update_date_time=now()
现在像这样更新
UPDATE table SET datetime =update_date_time;
根据您的要求更正语法