Maison  >  Article  >  base de données  >  Pourquoi est-ce que j'obtiens « Code d'erreur : 1062. Erreur d'entrée en double : résolution du problème de colonne « ID » » ?

Pourquoi est-ce que j'obtiens « Code d'erreur : 1062. Erreur d'entrée en double : résolution du problème de colonne « ID » » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 22:57:29811parcourir

Why am I getting

Code d'erreur : 1062. Erreur d'entrée en double : résolution du problème de la colonne "ID"

L'erreur rencontrée, "Code d'erreur : 1062. L'entrée en double « 1 » pour la clé « PRIMAIRE » signifie un conflit de valeurs au sein d'une clé primaire. Examinons le tableau et déterminons la cause première de ce problème :

Table UFICIO-INFORMAZIONI

Le tableau fourni présente les colonnes de la table UFFICIO-INFORMAZIONI, qui inclut « ID », « viale » et d’autres attributs. La colonne « ID » est désignée comme clé primaire, indiquant que ses valeurs doivent être uniques pour chaque ligne.

La cause de l'erreur d'entrée en double

L'erreur se produit parce que la colonne « ID » est définie avec des entrées en double. Dans l'instruction SQL que vous avez fournie :

<code class="sql">INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, ...)
VALUES (1, 'Viale Cogel ', '120', ...)</code>

La colonne "ID" est explicitement définie sur "1", ce qui contredit la contrainte de clé primaire. Étant donné que la clé primaire doit être unique, la base de données génère l'erreur.

Solution : utiliser AUTO_INCREMENT

Pour résoudre ce problème, envisagez de définir la colonne « ID » sur AUTO_INCREMENT . Ce faisant, la base de données génère automatiquement des valeurs uniques pour la colonne 'ID' lors des opérations d'insertion, garantissant ainsi l'intégrité de la clé primaire.

Voici la définition de table modifiée avec AUTO_INCREMENT :

<code class="sql">CREATE  TABLE IF NOT EXISTS `PROGETTO`.`UFFICIO-INFORMAZIONI` (
  `ID` INT(11) NOT NULL AUTO_INCREMENT,
  `viale` VARCHAR(45) NULL ,
   .....</code>

Insérer des enregistrements sans spécifier « ID »

Lors de l'insertion d'enregistrements avec AUTO_INCREMENT activé, vous pouvez ignorer la spécification de la colonne « ID » dans l'instruction SQL. La base de données attribue automatiquement un identifiant unique à chaque ligne.

Par exemple :

<code class="sql">INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`viale`, `num_civico`, ...)
VALUES ('Viale Cogel ', '120', ...)</code>

En résolvant le problème des entrées en double et en implémentant AUTO_INCREMENT, vous pouvez garantir l'insertion fluide des enregistrements dans l'UFFICIO. -Tableau INFORMAZIONI.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn