SQL Copy set - 带有FK更新的'clone'

时间:2011-09-09 02:51:07

标签: mysql

我需要复制一组具有parentID作为字段的数据...所以当我获取一组现有记录并插入它们时,我需要他们的parentID来反映新PK - 而不是旧PK。

我很好奇是否有一种SQL方法可以做到这一点 - 目前我正在做一堆逻辑@应用程序层并更新记录 - 所以我存储了OLD记录集,并在此基础上进行查找旧ID,旧父ID ......

哎呀 - 也许有一个'克隆'或'副本&更新FK' - 我正在使用MySQL 5

数据集可能如下所示

+--------+---------+------+
| ID(pk) | PID(FK) | NAME |
+--------+---------+------+
|  3123  |    0    | Bob  |
+--------+---------+------+
|  3127  |    0    | Jim  |
+--------+---------+------+ 
|  3400  |  3123   | Sue  |
+--------+---------+------+
|  3123  |    0    | Rik  |
+--------+---------+------+
|  3127  |  3400   | Cara |
+--------+---------+------+
|  3400  |  3400   | Pat  |
+--------+---------+------+

因此复制的记录可能会采用这些ID - 其中()中的PID是我需要知道如何派生的未知值。它们不能被认为是顺序的或单一的。

+--------+---------+------+
| ID(pk) | PID(FK) | NAME |
+--------+---------+------+
|  4000  |    0    | Bob  |
+--------+---------+------+
|  4001  |    0    | Jim  |
+--------+---------+------+
|  4002  | (4000)  | Sue  |
+--------+---------+------+
|  4003  |    0    | Rik  |
+--------+---------+------+
|  4004  | (4002)  | Cara |
+--------+---------+------+
|  4005  | (4002)  | Pat  | 
+--------+---------+------+

0 个答案:

没有答案