【问题标题】:CURRENT_TIMESTAMP applied after waiting for lock - what is the value?等待锁定后应用 CURRENT_TIMESTAMP - 值是多少?
【发布时间】:2018-09-10 04:06:10
【问题描述】:

在 InnoDB 插入/更新语句必须等待事务完成的情况下,用于 NOW() 和/或 CURRENT_TIMESTAMP 的值是什么?

它是从数据准备好插入/更新但开始等待锁释放时的值,还是从实际应用更改时的值?我在文档中找不到任何解释这一点的内容。

【问题讨论】:

    标签: mysql transactions locking mariadb innodb


    【解决方案1】:

    正如您在 mysql doc 中看到的,主要区别在于 now() (和 current_timestamp )和 SYSDATE() 的使用之间。

    NOW() 返回一个常数时间,该时间指示 语句开始执行。 (在存储的函数或触发器中, NOW() 返回函数或触发语句的时间 开始执行。)这与 SYSDATE() 的行为不同,后者 返回它执行的确切时间。

    你可以在这里找到一些参考。

    https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html https://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_sysdate https://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_now

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 1970-01-01
      • 2012-04-27
      • 2017-02-15
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多