java-Java修改数据库表时某字段出现重复值不能修改该记录怎么继续修改下一条记录

问题描述

Java修改数据库表时某字段出现重复值不能修改该记录怎么继续修改下一条记录

Java修改数据库表的company_name字段,此字段唯一,company_name这个字段值:前面有问号的去掉以后如果和已有的company_name重复了,就不更新或者删除,前面有问号的去掉以后如果和已有的company_name没重复就去掉问号。如:?北京金瓯鼎建筑装饰工程有限公司莱州分公司和北京金瓯鼎建筑装饰工程有限公司莱州分公司两个公司,把前面有问号的去掉问号,但是有重复的,遇到有重复的不用修改此记录或者删除此记录。
String sql=" "+" update cdpt_company_info "+ "set company_name=replace(company_name , '?' ,'')"
+" where company_name like '?%' ";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();

}
try {
ps.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
错误:Duplicate entry '北京金瓯鼎建筑装饰工程有限公司莱州分公司' for key 'company_name'

解决方案

 先用 String sql1= "select count(*) from cdpt_company_info where company_name=replace(company_name , '?' ,'')";
查询下,返回>0就是已经有了。

解决方案二:

not like 不就全给更新了 ............. =.=

解决方案三:

处理之前可以先判断是否符合操作条件,如果不符合就不处理,或者尝试操作并捕获异常,在异常分支里面对不合条件的记录不作处理。

解决方案四:

where里面应该是 notlike, 不相似的时候才执行更新操作吧?

时间: 2025-01-01 15:30:10

java-Java修改数据库表时某字段出现重复值不能修改该记录怎么继续修改下一条记录的相关文章

java代码-java查询oracle的表时出错,不知道什么原因,求救~~~~~~·

问题描述 java查询oracle的表时出错,不知道什么原因,求救~~~~~~· public static void main(String[] args) { Connection ct=null; PreparedStatement ps=null; ResultSet rs=null; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); ct=DriverManager.getConnection("jdbc:

java指定查询数据库表内容并用一个二维数组a来显示出现的问题

问题描述 主要通过"元件名"和"生产厂家"2个内容来查询数据库并显示结果部分代码如下:Objecta[][];Objectcolname[]={"元件名","生产厂家"};.....a=newObject[30][2];table=newJTable(a,colname);......if(eb.getSource()==b_enter){try{inti=0;sqll=sql.connect();a1="'&quo

代码-如何修改数据库中某一个字段的名称

问题描述 如何修改数据库中某一个字段的名称 我是新手 不会用在c#的wpf里 用代码修改 有没有大神给个代码 解决方案 修改数据库里字段的名称,和c#无关,需要用sql来实现 修改列名 ALTER TABLE TABLE_NAME RENAME COLUMN OLD_COLUMN_NAME TO NEW_COLUMN_NAME; 解决方案二: 修改字段就是用sql语句 sqlserver中有sp_rename存储过程http://www.cnblogs.com/ringnet/archive/2

标准sql语句怎么修改数据库里所有这个字段

问题描述 标准sql语句怎么修改数据库里所有这个字段 所有表,然后这个字段是个字符串,想修改全部,但有的表列名不一定,怎么写sql 解决方案 对于sql server,表结构定义也作为一个表放在master数据库中,读取它并且修改就可以. 解决方案二: 表列名不一定,那就只写多个不同的sql语句判断条件来更新

c++获取sqlite3数据库表中所有字段的方法小结_C 语言

常用方法: 1.使用sqlite3_get_table函数 2.获取sqlite创建表的sql语句字符串,然后进行解析获取到相应的字段 3.采用配置文件的方式,将所有字段名写入配置文件 下面针对这三个方法给大家逐一详细介绍. 方法1:使用sqlite3_get_table函数 代码: char *dbname = "test.db"; int rc = sqlite3_open(dbname, &db); if (rc == SQLITE_OK) { char sql[256]

SQL提取数据库表名及字段名等信息代码示例

本文向大家介绍了使用SQL语句提取数据库所有表的表名.字段名的实例代码,在SQLserver 中进行了测试,具体内容如下: --查询所有用户表所有字段的特征 SELECT D.Name as TableName, A.colorder AS ColOrder, A.name AS Name, COLUMNPROPERTY(A.ID,A.Name, 'IsIdentity') AS IsIdentity, CASE WHEN EXISTS (SELECT 1 FROM dbo.sysobjects

select-ibatis查出mysql数据库表中某字段为null的数据???怎么写动态sql

问题描述 ibatis查出mysql数据库表中某字段为null的数据???怎么写动态sql 例如 select * from test where name is null 这条sql 中 IS NULL 报错,不知道ibatis里该怎么写??? 解决方案 我竟然不知道你想表达什么 解决方案二: 这条sql报错,不知道怎么改进??? 解决方案三: select * from table where content is "" 解决方案四: 在数据库中null 也是个值 解决方案五: 我

修改数据库表结构,和项目中用到表的页面。

问题描述 修改数据库表结构,和项目中用到表的页面. 求助前辈们: 公司要修改数据库表结构,把两个表整合成一个,现在数据库端已经修改好了, 把B表数据和列都加到A表中了,但是项目中用到B表的页面有200个左右, 有什么好办法快速的修改好吗?项目是asp.net,实体是用Codesmith生成的. 解决方案 可以借助一些工具辅助下,比如vim 解决方案二: 用Codesmith再生成一次代码,然后再执行下重构就是了.不过如果你的代码耦合在一起,还是要一些工作量的.

ComboBox手动绑定到数据库表的一个字段中的问题

问题描述 我的ComboBox绑定到数据库表的一个字段,是通过手动在ComboBox的属性中绑定DataSource,DisplayMember,ValueMember中的但是我不知道它连接数据库的conn的连接语句写在那,请大侠告知