2012-11-10 1 views

Répondre

4

Vous ne devriez pas les utiliser comme clés primaires. Utilisez-les comme index UNIQUE à la place, et ON DUPLICATE KEY UPDATE fonctionnera toujours. Je vous conseillerais de définir votre clé primaire comme une colonne de type entier unique totalement indépendante de vos données.

Jetez un oeil à cet exemple: http://sqlfiddle.com/#!2/41f2d/1

+0

Donc si elles sont 'UNIQUE' SUR DUPLICATE KEY UPDATE fonctionne toujours? Et quelque chose de plus ... il peut y avoir des doublons des mêmes données dans ces champs, mais pas la même combinaison. Aucune suggestion?? ou code MySQL? –

+0

@DeusDeceit Oui, cela fonctionne à peu près exactement de la même manière qu'un conflit de clé primaire. –

+0

Comment combiner deux champs UNIQUE? –

1

vous pouvez modifier table et définir que deux colonnes comme clé primaire,

ALTER TABLE myTable ADD PRIMARY KEY (colA, colB); 

ou lors de la création de la table

CREATE TABLE myTable 
(
    colA INT, 
    colB INT, 
    -- other fields here, .... 
    CONSTRAINT tb_pk PRIMARY KEY (colA, colB) 
) 
+0

peut une clé étrangère aussi à l'intérieur d'une clé composite primaire? –

Questions connexes