Sepertinya mysql melempar kode kesalahan 1062 untuk kunci utama duplikat. Anda dapat memeriksa kode kesalahan untuk pengecualian sql Anda:
public static final int MYSQL_DUPLICATE_PK = 1062;
try{
//code that throws sql exception
} catch(SQLException e){
if(e.getErrorCode() == MYSQL_DUPLICATE_PK ){
//duplicate primary key
}
}
Perhatikan bahwa pendekatan ini bukan vendor database lintas, karena vendor yang berbeda mungkin memiliki kode kesalahan yang berbeda untuk duplikat PK.