【发布时间】:2020-07-30 14:12:14
【问题描述】:
我正在寻找一些有趣的简单算法来将树的一部分复制(克隆)到树的另一部分。
我们有一张桌子:
create table tree (
id integer not null,
parent_id integer,
value varchar2(255),
CONSTRAINT tab_pk PRIMARY KEY (id)
);
begin
insert into tree(id, parent_id, value) values (1, null, 'A');
insert into tree(id, parent_id, value) values (2, 1, 'B');
insert into tree(id, parent_id, value) values (3, 1, 'C');
insert into tree(id, parent_id, value) values (4, 2, 'BC');
insert into tree(id, parent_id, value) values (8, 4, 'BCX');
insert into tree(id, parent_id, value) values (5, 2, 'BD');
insert into tree(id, parent_id, value) values (6, 3, 'CA');
insert into tree(id, parent_id, value) values (7, 3, 'CD');
end;
/
https://dbfiddle.uk/?rdbms=oracle_18&fiddle=9fe802f144a3af0663754cfb3e8dc1ba
如何轻松复制“CA”(ID = 6)下所有子节点的树“B”(ID = 2)?
甲骨文 18-19c。
【问题讨论】:
-
您能否详细说明您的问题。您希望 B 包含在 CA 中吗?对吗?
-
您想要 ID=2 的孩子加上 ID=6 中 CA 下的孩子,包括 CA ??
-
我想将树(B 和孩子)复制到树中的另一个地方(CA)(在表中而不是在 SQL 中)