Liaison table erreur #1062 MySql

Bonjour,

je crée une base de donnée via phpMyAdmin mais j'ai un petit problème comme vous l'aurez deviner (!!)

j'ai 3 tables : Client, Sauvegarde, Logiciel

une sauvegarde est lié à un client et est faite par un logiciel.

exemple :
ID sauvegarde : 1, ID client : 1, ID logiciel : 2

mon problème c'est que ID logiciel ne peut pas être réutiliser
#1062 - duplicate entry '1' for key 'primary'
j'ai une centaine de client, j'ai 5 logiciel il est donc normal que la clé ID logiciel se repette mais visiblement pas pour php MyAdmin ^^

une petite idée ? un petit coup de main ?

d'avance merci !

10 réponses

  1. Contributeur
    oui, mais c'est une "mauvaise solution", je fais comme ça par habitude, ça marche, mais ça pourrait poser des soucis dans certains cas, mais si tu vérifies suffisamment tes données dans ton application, tu ne devrais pas avoir de soucis majeur.
    1
    1. Contributeur
      tu cherches à faire quoi ? une insertion de données, un select, un update ?

      A quoi ressemble ta requête ?
      0
      1. je remplie ma base à la main via l'onglet "inserer" et j'ai également préciser que les clefs provenais des autres tables via la vue relationnel

        INSERT INTO 'sauvegarde' ('ID_Sauvegarde', 'ID_Client', 'ID_Logiciel', 'Date_Sauvegarde', 'Etat_Sauvegarde') VALUES ('3', '3', '1', '2013-01-01', 'ko')

        #1062 - Duplicate entry '1' for key 'ID_Logiciel'
        0
        1. Contributeur
          quelle est la structure de ta table sauvegarde ?
          0
          1. Colonne Type Null Défaut Relié à

            ID_Sauvegarde int(11) Non
            ID_Client int(11) Non client -> ID_client
            ID_Logiciel int(11) Non logiciel -> ID_Logiciel
            Date_Sauvegarde date Non
            Etat_Sauvegarde varchar(2) Non
            0
            1. Contributeur
              Et si tu fais la même chose avec un id logiciel qui n'existe pas ? Est-ce que ça te crée une nouvelle entrée dans la table logiciel ?
              0
              1. #1452 - Cannot add or update a child row: a foreign key constraint fails ('sauvegarde', CONSTRAINT 'sauvegarde_ibfk_2' FOREIGN KEY ('ID_Logiciel') REFERENCES 'logiciel' ('ID_Logiciel'))

                il ne me crée et j'ai ce message d'erreur

                finalement tout ce que je cherche à faire c'est de lié un logiciel à plusieurs sauvegarde sur le principe ça me parait possible non ?
                0
                1. Contributeur
                  Pour être tout à fait franc avec toi je n'utilise pas les contraintes d'intégrité de mysql, ce sont mes applications qui font ces liens (je sais, c'est pas bien) mais du coup je n'ai pas ce genre de soucis...

                  Alors j'aurais tendance à te dire de faire comme moi, mais c'est sûr que ça n'est pas une vraie solution, c'est un contournement.
                  0
                  1. donc si je comprend bien ne pas crée de lien directement via MySql mais de lié les deux table autrement ?
                    0