我正在處理時間序列數據,其中的關鍵列是時間戳:時間。 每行也有很多「值」列。移動整個鍵的範圍
我即將將數據的整個範圍轉移幾個小時(由於夏令時問題)。 爲此,我將更新多行的密鑰,並可能導致一些重複的密鑰。我希望日期範圍邊緣的重複鍵被忽略。我想要移動的範圍覆蓋舊的。
我打算做這樣的事情:
UPDATE IGNORE time_series_table
SET time=time-<some_shift>
WHERE <time in a date-range>
這裏是describe <table>
的時間關鍵輸出:
Field Type Null Key Default Extra
TimeMeas datetime NO PRI NULL
我的問題是:這一次所有的按鍵轉移,或它會嘗試逐一移動每一行,導致在移位的範圍本身中有大量的重複鍵嗎?
您是否有更好的方式來記住這一點? 在此先感謝
當你說時間戳你的意思是時間戳字段類型或一個實際的整數?其次,這是一個獨特的關鍵? DESCRIBE或SHOW CREATE TABLE的輸出將會很有幫助。 – wisefish
我已經在問題中添加了描述的輸出。不管怎麼說,昨天我得到了一個很好的安慰:它使用臨時表來複制這個並使用「REPLACE」/「ignore」。我即將投票,但今天沒有通知。 這可能是SO的錯誤或作者因某種原因刪除它的錯誤。 –
桌子使用什麼引擎?它是InnoDB嗎? – Romain