Maison  >  Article  >  base de données  >  Pourquoi est-ce que je reçois une erreur « Entrée en double pour la clé primaire » (code 1062) dans MySQL ?

Pourquoi est-ce que je reçois une erreur « Entrée en double pour la clé primaire » (code 1062) dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 12:42:01617parcourir

Why am I getting a

Erreur MySQL : entrée en double pour la clé primaire

Code d'erreur : 1062. Entrée en double « 1 » pour la clé 'PRIMARY'

Problème :

Lorsque vous tentez d'insérer une nouvelle ligne dans la table UFFICIO-INFORMAZIONI, vous recevez une erreur indiquant qu'il existe une entrée en double pour la clé primaire valeur '1'.

Explication :

La clé primaire est une contrainte unique sur une colonne ou un ensemble de colonnes dans une table. Il garantit que chaque ligne possède un identifiant unique. Dans votre cas, la colonne ID est définie comme clé primaire, ce qui signifie que deux lignes ne peuvent pas avoir la même valeur pour la colonne ID.

Cause :

L'erreur est générée car vous essayez d'insérer une nouvelle ligne avec une valeur d'ID qui existe déjà dans la table. Cela viole la contrainte de clé primaire, car il ne peut pas y avoir deux lignes avec la même valeur de clé primaire.

Solution :

Il existe deux solutions possibles à ce problème :

  1. Utiliser l'incrémentation automatique : Remplacez la colonne ID par une colonne à incrémentation automatique. Cela permettra à la base de données de générer automatiquement des valeurs d'ID uniques pour chaque nouvelle ligne, éliminant ainsi le besoin de spécifier explicitement la valeur d'ID.
  2. Spécifiez une valeur d'ID unique : Si vous ne souhaitez pas Si vous utilisez l'incrémentation automatique, vous devrez vous assurer que la valeur d'ID que vous spécifiez pour chaque nouvelle ligne est unique. Vous pouvez générer vos propres valeurs d'ID uniques ou utiliser une bibliothèque UUID (Universally Unique Identifier).

Exemple :

Pour utiliser l'incrémentation automatique dans MySQL, modifiez l'instruction de création de table comme suit :

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

Cela créera une colonne ID qui s'incrémente automatiquement pour chaque nouvelle ligne insérée dans le tableau. Vous pouvez ensuite omettre la valeur de l'ID lors de l'insertion de nouvelles lignes.

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

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