微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将一年的记录复制到另一年

如何解决将一年的记录复制到另一年

| 我有三个表,州,城市和村庄。
State   (PK_Id,Name,Year)
City    (PK_Id,FK_StateId)
Village (PK_Id,Year,FK_CityId)
PK表示主键,FK表示外键。我想将去年的每个州复制到新年,去年的每个城市和去年的每个村庄。 可能吗?我该怎么做?确实比看起来难。 更新: 当我要将去年的城市复制到新年时,会出现问题。当我决定将去年的村庄复制到新年时,这似乎是不可能的。     

解决方法

        
INSERT INTO State (Name,Year)
SELECT S.Name,2011
FROM State S
WHERE S.Year = 2010

INSERT INTO City (Name,FK_StateId)
SELECT C.Name,S_new.PK_Id
FROM City C
INNER JOIN State S_old ON C.FK_StateId = S_old.PK_Id
  AND S_old.Year = 2010
INNER JOIN State S_new ON S_old.Name = S_new.Name
  AND S_new.Year = 2011

INSERT INTO Village (Name,Year,FK_CityId)
SELECT V.Name,2011,C_new.PK_Id
FROM Village V
INNER JOIN City C_old ON C.FK_CityId = C_old.PK_Id
  AND C_old.Year = 2010
INNER JOIN City C_new ON C_old.Name = C_new.Name
  AND C_new.Year = 2011
    ,        您可以使用临时表存储3个表的副本。更新所有临时表中的年份,然后再插入到主表中。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。