我有一个资源表,其中包含案例研究、白皮书、网络研讨会等资源。
它与另一个表case_study_blocks.有一对多的关系。因此,case_study_blocks表中有一个外键caseStudyId,它指向资源表中的案例研究。
我希望将所有案例研究移到一个单独的表case_studies,中,但要做到这一点,我还必须更新case_study_blocks表中的外键引用,并使那里的所有记录指向case_study表中新生成的唯一ids。
在保持关系的同时迁移完整数据的正确方法是什么?
我能想到的一个方法是:
将外键约束拖放到case_study_blocks
发布于 2020-12-31 13:12:44
执行以下步骤:
case_studies表中,包括原始ID值--可以称为oldCaseStudyId --以便case_studies表将具有新生成的ID (caseStudyId)和单独的oldCaseStudyId列中的原始ID。当一切完成后,可以放弃后者。case_study_blocks.caseStudyId上的
case_studies中可用的映射执行caseStudyId值的更新(它既有旧的ID值,也有新的ID值)。SQL语句可以如下所示:更新case_study_blocks内部连接case_studies on case_studies.oldCaseStudyId = case_study_blocks.caseStudyId set case_study_blocks.caseStudyId = case_studies.caseStudyId;
case_study_blocks.caseStudyId上
resources中与案例研究相关的原始行
删除列case_study_blocks.oldCaseStudyId的
https://stackoverflow.com/questions/65519459
复制相似问题