我正在处理时间序列数据,其中的关键列是时间戳:时间。 每行也有很多“值”列。移动整个键的范围
我即将将数据的整个范围转移几个小时(由于夏令时问题)。 为此,我将更新多行的密钥,并可能导致一些重复的密钥。我希望日期范围边缘的重复键被忽略。我想要移动的范围覆盖旧的。
我打算做这样的事情:
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