NOW()对于DATETIME InnoDB交易有保证吗?

Mav*_*ick 5 php mysql innodb transactions

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

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

Joh*_*nde 5

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

BEGIN;
SELECT @now := NOW();
INSERT ... VALUES (..., @now, ...);
INSERT ... VALUES (..., @now, ...);
UPDATE ... @now ...;
COMMIT; 
Run Code Online (Sandbox Code Playgroud)

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