[Update] setString sur une clé primaire
Bonjour!
Je n'arrive pas a faire un update sur une table dont la clé primaire est une chaine de caractère.
C'est cette même clé primaire que j'essaye de changer.
Voici ma manière de procéder:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
String requete = "update dbo.ETABLISSEMENT_SCOLAIRE SET "
+ "CIR_LIBEL='Inconnu'," + "COM_CODE= ?," + "QUA_CODE=?,"
+ "ETB_LIBEL=?," + "ETB_BP=?," + "ETB_TEL=?,"
+ "ETB_ANCREA=?," + "ETB_REFTER=?,"+ "ETB_CODE=?," + "ETB_DISCHEFL_COM=?"
+ " where ETB_CODE=?";
PreparedStatement stmt = connex.prepareStatement(requete);
stmt.setInt(1, etb.getCommuneId());
stmt.setString(2, etb.getSousLocalisationEtab());
stmt.setString(3, etb.getNomEtab());
stmt.setInt(4, etb.getBpEtab());
stmt.setString(5, etb.getTelEtab());
stmt.setInt(6, etb.getConstrAnneeEtab());
stmt.setString(7, etb.getKbisEtab());
stmt.setInt(8, etb.getDistChefEtab());
stmt.setString(9, etb.getIdEtab()); // ici le nouveau code
stmt.setString(10, oldCode); // ici l'ancien code
stmt.executeUpdate(); |
J' obtient une erreur de type violation de contrainte sur la clé primaire alors qu'elle n'est pas en doublon dans la base:
Par exemple j ai une clé qui est '0000' et je la passe à '0002', il me donne l'erreur. Par contre j ai dand ma base une entrée qui a un id égal à '2' ( peut-être est-ce la source du problème?)
J'utilise SQL Server 2005 et le champ en question est de type char(4)
D'avance merci =)