gpt4 book ai didi

Mysql 更新/插入 : copying historical data

转载 作者:行者123 更新时间:2023-11-29 14:28:51 27 4
gpt4 key购买 nike

我的Mysql数据库中有一些历史数据表。

我想在同一个表中重复一天的历史数据。

表结构,带有一些示例数据:

 Id | Date       | Value

1 | 2012-04-30 | 5
2 | 2012-04-30 | 10
3 | 2012-04-30 | 15

我想重复这些 ID 和值,但是对于新日期 - 例如2012年5月1日。即添加:

  1 | 2012-05-01 |     5
2 | 2012-05-01 | 10
3 | 2012-05-01 | 15

我觉得应该有一种简单的方法来做到这一点...我已经尝试使用带有子查询的 UPDATE 语句并使用多个 LEFT JOIN,但还没有实现。

关于如何做到这一点有什么想法吗?

编辑:为了澄清...- 我不想将这些添加到新表中- 我也不想更改表中的现有记录。- id 是故意重复的(它们是另一个记录数据引用内容的表的外键...)。

最佳答案

INSERT INTO yourTable
SELECT ID, "2012-05-01" As Date, Value
FROM yourTable
WHERE Date = "2012-04-31"

通常,您的 ID 是自动增量的,因此在同一个表中具有相同的 ID 是行不通的。使用不同的 ID 或不同的表。

不同的ID(下一个自动增量):

INSERT INTO yourTable
SELECT NULL as ID, "2012-05-01" As Date, Value
FROM yourTable
WHERE Date = "2012-04-31"

不同表(引用原始ID)

INSERT INTO yourTable_hist
SELECT NULL as ID, ID as old_ID, "2012-05-01" As Date, Value
FROM yourTable
WHERE Date = "2012-04-31"

关于Mysql 更新/插入 : copying historical data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410933/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com