2012-12-14 3 views
0

J'ai un fragment de code en Java qui insère des données dans ma base de données.Auto_Increment avec PreparedStatement

On m'a conseillé de mettre AUTO_INCREMENT et de donner à chaque ligne un numéro unique.

Mais il me donne maintenant une erreur:

java.sql.SQLException: Incorrect integer value: 'DEFAULT' for column 'usersID' at row 1

Je suppose que cela est dû au fait qu'elle est coulée la valeur AUTO_INCREMENT dans une chaîne? Comment puis-je contourner ce problème car ce n'est pas mon programme Java qui crée le numéro unique, mais la base de données elle-même.

pst.setString(1, "DEFAULT"); 

String query_to_update = "INSERT INTO `evidence_db`.`mcases` (" 
         + "`PID`," 
         + "`Name`) " 
         + "VALUES (?,?);"; 
+1

L'incrémentation automatique doit être un nombre. – duffymo

+3

Vous ne devriez pas essayer d'insérer quoi que ce soit dans cette colonne. –

Répondre

1
pst.setInt(1, 0); 

ci-dessus était la ligne que je avais besoin. Merci à tout ce que essayé pour être utile.

+1

Ceci est toujours faux, en supposant que le paramètre 1 correspond à votre champ auto_increment. Pour que l'incrémentation automatique prenne effet, vous ne devez pas lui attribuer de valeur dans la liste des colonnes. – Perception

+0

Bonjour @Perception. Cela semble fonctionner correctement? Si je ne définis pas de valeur, des erreurs se produisent. –

+1

Vous obtenez des erreurs car vous avez inclus la colonne auto_increment dans votre liste d'insertion. Retirez-le et la base de données prendra soin de définir sa valeur correctement. – Perception