admin

当行有子级时复制数据库中的行

sql

我需要复制表中的一行,并且还复制通过其外键在其他表中链接到该行的所有行。然后复制链接到这些行的所有行。

问题是当我复制行时,键将要更改。如何通过表之间的关系传播这些更改?


阅读 166

收藏
2021-07-01

共1个答案

admin

您可以编写实现所有复制逻辑的存储过程。

本质上:

  1. 在主表中插入副本行-将新ID存储在变量中
  2. 在子表中插入每行的副本,并在变量中引用FK。将子行的ID存储在variable2中
  3. 在子表中依赖于变量2的FK在表中插入新行。

简而言之,编写一个存储的过程,该过程从顶部开始,然后根据需要向下移动任意多个表。

2021-07-01