MySQL更新每行具有唯一时间戳的多行

时间:2015-12-29 13:40:45

标签: mysql

例如我有一个名为people的表,其中包含以下列 -

people_id (primary key, auto inc)
first_name
last_name
timestamp (default - current_timestamp)

此表在添加最后一列timestamp之前已有30,000行,因此目前所有时间戳都相同。我希望每个时间戳都是唯一的,但我无法这样做。

我发现的stackoverflow上最接近的answer是Oracle的,它建议以下查询 -

UPDATE ITEM_HISTORY SET my_timestamp = SYSTIMESTAMP + NUMTODSINTERVAL(rownum/1000, 'SECOND');

但是这个查询在MySQL中不起作用,因为NUMTODSINTERVALSYSTIMESTAMP没有这样的函数。我尝试使用上面提到的查询作为 -

UPDATE people SET `timestamp` = CURRENT_TIMESTAMP + people_id;

但它失败了,我认为因为,people_id(int)无法添加到时间戳中。 那么有没有办法以时间戳或其他任何方式转换和添加people_id以更新具有唯一时间戳的行?

感谢。

3 个答案:

答案 0 :(得分:2)

您可以根据用户的ID

添加一些使用间隔
.limitWidth {

    white-space: nowrap;     
    max-width: 100px;
    text-overflow: ellipsis;
    overflow-x: hidden;

}

Read more here about DATE_ADD() function

答案 1 :(得分:0)

  

但它失败了,我认为因为,people_id(int)无法添加到时间戳

当然可以。你可以使用UNIX_TIMESTAMP

UPDATE people SET timestamp = DATE_ADD(UNIX_TIMESTAMP(), INTERVAL id SECOND);

答案 2 :(得分:0)

它对我有用     更新人员SET timestamp = UNIX_TIMESTAMP()+ people_id;