小编Ond*_*uda的帖子

在 PostgreSQL 中批量插入 M:N 关系

我需要将数据从旧数据库导入新数据库,但结构略有不同。例如,在旧数据库中,有一个表记录了员工及其主管:

CREATE TABLE employee (ident TEXT PRIMARY KEY, name TEXT, supervisor_name TEXT)
Run Code Online (Sandbox Code Playgroud)

现在,新的数据库如下:

CREATE TABLE person (id BIGSERIAL PRIMARY KEY, name TEXT, old_ident TEXT);
CREATE TABLE team (id BIGSERIAL PRIMARY KEY);
CREATE TABLE teammember (person_id BIGINT, team_id BIGINT, role CHAR(1));
Run Code Online (Sandbox Code Playgroud)

也就是说,新的(更通用的)数据库可以创建人员团队,而不是带有主管姓名的普通员工表。员工是有角色的成员,有角色的'e'主管's'

问题是如何轻松地将数据employee从新结构迁移到新结构,每个员工-主管对一个团队。例如,员工

employee: ('abc01', 'John', 'Dave'), ('abc02', 'Kyle', 'Emily')
Run Code Online (Sandbox Code Playgroud)

将被迁移为

person: (1, 'John', 'abc01'), (2, 'Dave', NULL), (3, 'Kyle', 'abc02'), (4, 'Emily', NULL)
team: (1), (2)
teammember: (1, 1, 'e'), (2, 1, 's'), (3, …
Run Code Online (Sandbox Code Playgroud)

postgresql migration

9
推荐指数
1
解决办法
1940
查看次数

标签 统计

migration ×1

postgresql ×1