如果我有一个分层表:树(ID,PARENT_ID,NAME)
如何在SQL中使用序列加载它?在PLSQL中,我们可以使用变量等。但我想知道是否可以用SQL来完成。
这显然不起作用,它在第2行失败,因为ID = PARENT_ID,我有一个检查约束阻止它。
insert into tree (TREE_SEQ.NEXTVAL, NULL, 'root');
insert into tree (TREE_SEQ.CURRVAL, TREE_SEQ.NEXTVAL, 'branch');
字符串
这是可行的,但我担心并发性。
它还假设序列是用INCREMENT BY 1
定义的
insert into tree (TREE_SEQ.NEXTVAL, NULL, 'root');
insert into tree (TREE_SEQ.NEXTVAL, TREE_SEQ.CURRVAL - 1, 'branch');
型
1条答案
按热度按时间gwo2fgha1#
你应该使用PL/SQL:
字符串
其中,给定的设置:
型
然后在PL/SQL块之后,该表包含:
| 父ID|姓名| NAME |
| --|--| ------------ |
| * 空 *| 根| root |
| 一个|分支| branch |
但是,如果创建一个函数来 Package 序列:
型
然后你可以在SQL语句中使用它:
型
那么该表现在包含:
| 父ID|姓名| NAME |
| --|--| ------------ |
| * 空 *| 根| root |
| 一个|分支| branch |
| * 空 *| 根| root |
| 三个|分支| branch |
fiddle