package com.chcbz;
import java.sql.*;public class UpdResult{
public static void main(String args[]){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT student.* FROM student ORDER BY ID";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int age = rs.getInt("ID");
// System.out.println(age);
rs.updateInt("ID",age+1);
rs.updateRow();
}
rs.close();
stmt.close();
con.close();
} catch(ClassNotFoundException e){
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
}
}
import java.sql.*;public class UpdResult{
public static void main(String args[]){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT student.* FROM student ORDER BY ID";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int age = rs.getInt("ID");
// System.out.println(age);
rs.updateInt("ID",age+1);
rs.updateRow();
}
rs.close();
stmt.close();
con.close();
} catch(ClassNotFoundException e){
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
}
}
不用看就知道问题是这里的
ID做为主键的话,是不可以重复的,如果有一个记录的ID为2,另一条记录的ID为3
当你这样更新ID为2的记录时,他的ID要变成3,和另一条记录ID为3的主键值冲突
楼主有空多看看SQL的基础