数据库重复记录 jsp设计

来源:百度知道 编辑:UC知道 时间:2024/06/29 00:04:01
例:现在数据库中有主键id自增长的,和N个列。
我想如果除了id以外的字段如果相同的话就认为是重复记录。不允许用户添加。这样怎么实现?--不想用先查询对比再决定插入?
我这个想法可能太愚蠢,请给出一个好的解决办法
谢谢!我实践一下。另外,我用的Hibernate建立的数据库我想让自增长主键的起始数字是我指定的或者是指定位数的
另外:我用的是sql server2005 公司就要用这个开发

用 mysql的 INSERT **** ON DUPLICATE KEY UPDATE ***; 语法 ;就是当数据重复时,执行更新;

你数据库里可以多设计一个字段,用来记录更新次数的,我这里暂时命名为c:
我的表名为uu,里面有id,na,c三个字段;id为主键;na设置成唯一索引;c为更新次数使用,实际没有意义,只是为了配合语法;
然后用:
INSERT INTO uu (na,c) VALUES (1234,0) ON DUPLICATE KEY UPDATE c=c+1;
第一次插入时 ,因为na没有为1234的记录,所以可以顺利insert;第二次插入 就不执行insert了,执行update了

把不想让它相同的字段设成联合主键。。。我的想法可能也有点愚蠢。。呵呵,等待高人解决。。。

为数据库表其他字段做个联合唯一索引,再插入数据的时候如果数据库里已经有了就会抛出异常,你捕获异常,在catch代码块里去处理插入失败后的逻辑。

插入抛出异常,然后捕捉处理

1.其实上面方法也是可取得,既然你想用hibernate!那我也用hql来解决下,如果重复就更新
this.getHibernateTemplate().saveOrUpdate()

2.例如orcale数据库,可以这样设置
<generator class="sequence">
<param name="sequence">...</param>
<param name="initial_value">...</param>初始值
<param name="increment_size">...</param>增长度
</generator>