0

我想将数据从一个表迁移到另一个表,除了具有不同表名的两个表之外,它们还具有不同的架构。

例如,现有表是:

@Entity
public class Address {
     private String uuid;
     private String street;
     private String postcode;
}

@Entity
public class User {
     private String uuid;
     private String name;
     @One2One
     private Address address;
}

需求改变后,我们将这两个类重构为如下所示:

@Entity
public class UserChanged {
     private String uuid;
     private String name;
     @Embedded
     @AttributeOverrides(.....)
     private Address address;
}
@Embeddable 
public class AddressChanged {
     private String street;
     private String postcode;
}

这意味着,在新表中,我们只有一个“UserChanged”表,所有列都包含用户信息,如 uuid、姓名、街道和邮政编码。但是对于现有的,我们有两个表,分别是“用户”和“地址”,在“用户”表中,有一个外键“地址”,它使用主键引用表“地址”。

Address
------------------
uuid          varchar (primary key)
street        varchar
postcode      varchar


User
------------------
uuid          varchar (primary key)
name          varchar
address_id    varchar (foreign key)


UserChanged
------------------
uuid          varchar (primary key)
name          varchar
street        varchar
postcode      varchar

所以我要做的就是将“User”和“Address”表中的所有数据信息迁移到一个“UserChanged”表中,即User+Address -> UserChanged。

任何人都可以告诉我应该为这个迁移要求编写的 sql 脚本。

4

1 回答 1

0
insert into UserChanged (uuid, name, street, postcode) select a.uuid, u.name, a.street, a.postcode from address a, user u where a.uuid = u.address_id
于 2012-08-15T02:17:52.037 回答