需求:
1、批量产生10万条客户信息插入到pers表中
2、客户编号不能重复、客户姓名不能重复、客户编号从100000开始
解决方法:
insert into pers(persnbr,persname) values select (level-1)+100000,‘客户测试姓名-’||((level-1)+100000)from dual connect by level <=100000
或者
insert into pers(persnbr,persname) values select (rownum-1)+100000,‘客户测试姓名-’||((rownum-1)+100000)from dual connect by rownum<=100000
解析:
connect by:构造了一个循环
rownum或level:加条件终止循环。如果执行select * from dual connect by 1=1; 则会无限循环下去直至内存溢出
Connect by的典型用法
start with 条件1 connect by prior 条件2 where 条件3:用于构成树查询(生成递归算法)
条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。
条件2 是连接