Oracle中批量产生指定条数的记录

本文介绍了如何在Oracle数据库中使用SQL语句批量生成10万条具有唯一标识的客户信息,通过`connect by`和`rownum`或`level`结合,确保客户编号和姓名不重复,起始编号为100000。同时,讲解了`connect by`在构造递归树查询中的典型应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:
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 是连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值