5
在單個InnoDB事務中的2+查詢中是否使用NOW()保證確保插入的datetime值在數據庫中準確無誤?NOW()爲DATETIME InnoDB交易保證?
換句話說,就是NOW(),即使你在單個事務中有超過20個查詢使用它總是相同的,還是會改變?
在單個InnoDB事務中的2+查詢中是否使用NOW()保證確保插入的datetime值在數據庫中準確無誤?NOW()爲DATETIME InnoDB交易保證?
換句話說,就是NOW(),即使你在單個事務中有超過20個查詢使用它總是相同的,還是會改變?
Apparently it is not guaranteed跨越一個交易,但可以從一個聲明到另一個聲明。有一種變通方法,您可以使用as shown here:
BEGIN;
SELECT @now := NOW();
INSERT ... VALUES (..., @now, ...);
INSERT ... VALUES (..., @now, ...);
UPDATE ... @now ...;
COMMIT;
如果你想避免總共才設置的當前日期和時間到一個PHP變量並使用它。
嗯..我打開這個問題去與PHP變量路線,你有任何想法如何實現它? http://stackoverflow.com/questions/10129180/get-datetime-in-php-and-post-it-to-mysql-for-transaction-consistency – Maverick 2012-04-12 18:21:12
我的錯誤印象是,NOW()被修復在交易開始時達到一個特定的價值,但我看到這是不正確的。使用MySQL複製時,由NOW()返回的值由複製線程設置,但其值可以在單個事務中的語句之間更改。我認爲我因爲複製語義而被'NOW()'行爲困惑,這是我能找到的唯一地方,那裏有任何MySQL文檔中的混淆。 – 2014-12-30 16:56:25