我试图在AS400 DB2中为多行更新表。当我在工作台上测试时,此查询工作正常。当我从jdbc模板使用相同的查询时,它会创建死锁并在表上进行锁定。这可能是什么问题?这是我的代码。
UPDATE <table name> SET status= 'CLOSED' WHERE PROCESSID IN ('ABC1243', 'DTH4666');
使用代码。
public void updateStatus() {
try { getJdbcTemplate().update("UPDATE <table name> SET status= 'CLOSED' WHERE PROCESSID IN ('ABC1243', 'DTH4666');}
catch (Exception e) { logger.error(e); throw e; }
}
任何想法对我都非常有用。
答案 0 :(得分:-1)
1.您的数据库连接是否已打开或关闭自动提交? 2.在DB2中,当您触发选择查询时,存在死锁的可能性 在同一事务中更新查询 3.如果关闭了自动提交,并且您已启动了选择查询 然后尝试提交或回滚该事务,然后触发更新 查询。它应该工作。
如果您仍面临上述问题,请与我联系。