是Mysql NOW()DETERMINISTIC

时间:2015-09-06 17:13:13

标签: mysql deterministic

当您将MySQL函数标记为DETERMINISTIC时,文档说明

如果例程对于相同的输入参数总是产生相同的结果,则该例程被认为是“确定性的”,否则被认为是“不确定的”。

这是真的吗?如果在不同的客户端会话中调用,DETERMINISTIC函数是否必须返回相同的结果?或者在会话中的不同查询中?

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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