5

在单个 InnoDB 事务中的 2+ 个查询中使用 NOW() 是否保证插入的日期时间值在数据库中是准确的?

换句话说,NOW(),即使您在单个事务中使用它有超过 20 个查询,它是否总是相同的,还是会改变?

4

1 回答 1

5

显然,它不能保证在整个事务中,但可以从语句更改为语句。您可以使用一种解决方法,如下所示

BEGIN;
SELECT @now := NOW();
INSERT ... VALUES (..., @now, ...);
INSERT ... VALUES (..., @now, ...);
UPDATE ... @now ...;
COMMIT; 

如果您想完全避免这种情况,只需将当前日期和时间设置为 PHP 变量并使用它。

于 2012-04-11T20:22:43.327 回答