防止姓名重复解决
这里以Oracle 10g为实,项目中需要录入人员,而人员的姓名是不能重复的,如果有重复,需要在后面增加1,2,3.....
首先,判断姓名是否存在
select * from hr_archives where username='张三';
如果存在,获取所有张三1、张三2的个数
select count(*) from hr_archives where regexp_like(username,'d*$') ;
*思考:这里有个问题,如果录入的就是张三1,而数据库中已经存在张三、张三1、张三2、张三3;则上面的方法结果是 张三11 而不是我们想要的张三4;
好,我们这样 select count(*) from hr_archives where REGEXP_REPLACE(username,'d*$','') = REGEXP_REPLACE('张三1','d*$',''),
这样我们录入了张三4;
但是,如果我们满足上面,第一步中,如果我直接录入张三6,这是满足的,此时数据库有张三、张三1、张三2、张三3,张三4,张三6,我们再录入张三的时候,
第二步会给我返回的结果是张三6,但是张三6已经存在;
问题就探讨到这里,暂时就这样实现了,虽然不完美。