Mysql NOW() 是确定性的吗

Is Mysql NOW() DETERMINISTIC

当您将 MySQL 函数标记为 DETERMINISTIC 时,文档显示

A routine is considered “deterministic” if it always produces the same result for the same input parameters, and “not deterministic” otherwise.

随着时间的推移是真的吗?如果在不同的客户端会话中调用,DETERMINISTIC 函数是否必须 return 相同的结果?或者在会话中的不同查询中?

换句话说,NOW()会被认为是DETERMINISTIC吗?

根据定义 NOW() 是不确定的。如果它是确定性的,它应该是一个常数,因为它需要 0 个参数。所以每次调用都会产生相同的结果。

NOW() 非常不确定,只是根据您给出的定义。确定性的要点是它允许基于假设的各种优化,如果您的结果取决于当前时间,这些假设将不成立。 有关示例讨论,请参阅 http://forums.mysql.com/read.php?98,406891,406895#msg-406895