我的Mysql数据库中有一些历史数据表。
我想在同一张表中为另一天重复一天的历史数据。
表结构,带有一些示例数据:
Id | Date | Value
1 | 2012-04-30 | 5
2 | 2012-04-30 | 10
3 | 2012-04-30 | 15
我想重复这些ID和值,但需要一个新的日期-例如2012-05-01。即增加:
1 | 2012-05-01 | 5
2 | 2012-05-01 | 10
3 | 2012-05-01 | 15
我觉得应该有一个直截了当的方法来做这件事...我试过使用UPDATE语句和子查询,并使用多个左联接,但还没有达到目的。
我能怎么做吗?
编辑:以澄清...-我不想将这些添加到新表中-我也不想更改表中的现有记录。-这些ID是有意复制的(它们是另一个表的foreign_key,该表记录了数据引用的内容...)。
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"