Mysql
及時鎖定數據庫
我目前正在使用 MySQL (5.7) 數據庫的轉儲來製作一些東西的原型,其中大部分數據都是時間相關的。我編寫的大多數查詢都使用該
NOW()
函式,並且隨著我們遠離進行轉儲的時間,結果會隨著時間而變化。
NOW()
有沒有辦法將數據庫“及時鎖定”到轉儲時間,或者除了用硬編碼的時間戳替換所有引用之外,還有其他方法可以處理這種情況嗎?
您可以使用
set timestamp <unix_epoch>
which will makenow()
be fixed - 始終返回該值。見https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_timestamp請注意,這不會影響
sysdate()
. 要修復 sysdate,您可以使用--sysdate-is-now
將sysdate()
返回與 相同的值的選項啟動 MySQLnow()
,因此sysdate()
現在將修復上述問題。見 https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_sysdate-is-now(來自 Oracle 世界的人將此參數稱為
fixed_date
。)