mysql - 从单个查询更新大表时,SQL NOW() 函数是动态的还是静态的?

标签 mysql sql

如果我写了一个 SQL 语句来更新一个非常大的 MySQL 数据库表上的日期字段,那么 SQL NOW() 函数的输出是动态的,因为它在运行时随时间变化,或者它对每个数据保持不变字段并使用其开始时间?

IE;将:

UPDATE `table` SET `date` = NOW()

总是在所有字段中产生相同的结果(例如 2016-10-17 15:33:10 ),无论处理时间是 < 1 秒还是 1 小时?

如果是动态的。我需要一点帮助来创建一个不存在的声明。

最佳答案

它确实对每个数据字段保持不变并使用执行开始时间。前往检查一下。

http://www.mysqltutorial.org/tryit/query/mysql-now/#3

如果您运行代码,您会注意到时间与 5 秒 sleep 时间相同。

还有另一个函数SYSDATE(),它是动态的并且总是返回当前时间。这link可能对您有更多帮助。

关于mysql - 从单个查询更新大表时,SQL NOW() 函数是动态的还是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40078703/

相关文章:

MySQL 更新查询不起作用 #1064

python - SQLalchemy 在设置角色时不提交更改

sql - 允许安全执行任意sql所需的权限

mysql - 限制内连接表上的一个结果

mysql - Tomcat、Spring、Hibernate 应用程序 - 用户报告 session 混淆

2 周后的 php 脚本 cron 作业将提醒消息发送到特定的电子邮件地址

SQL 左联接表具有不明确的列名

mysql - 如何用斜杠格式化mysql?

MySQL多索引优化

Mysql让爷爷孙子一路下来