我需要复制一组具有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 |
+--------+---------+------+