Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在单个 InnoDB 事务中的 2+ 个查询中使用 NOW() 是否保证插入的日期时间值在数据库中是准确的?
换句话说,NOW(),即使您在单个事务中使用它有超过 20 个查询,它是否总是相同的,还是会改变?
显然,它不能保证在整个事务中,但可以从语句更改为语句。您可以使用一种解决方法,如下所示:
BEGIN; SELECT @now := NOW(); INSERT ... VALUES (..., @now, ...); INSERT ... VALUES (..., @now, ...); UPDATE ... @now ...; COMMIT;
如果您想完全避免这种情况,只需将当前日期和时间设置为 PHP 变量并使用它。