IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Primary Key absurde?


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut Primary Key absurde?
    Désolé pour le titre mais je ne savais pas comment l'intituler...

    Ces temps si je croise bcp d'applications dont les tables ont des champs auto-incrémentés désignés en PRIMARY KEY,

    Je me pause la question de savoir si c'est judicieux???
    car l'unicité de l'enregistrement est assuré...

    qqun pourrait me dire comment l'interpréter....

    Merci

  2. #2
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Tout d'abord, l'AUTO_INCREMENT n'oblige en rien d'utiliser la séquence de numérotation automatique. Il est tout à fait possible de fournir une valeur à la colonne qui a l'attribut AUTO_INCREMENT. Donc l'unicité n'est pas gérée automatiquement juste en spécifiant AUTO_INCREMENT.

    Ensuite, si l'AUTO_INCREMENT dépasse la valeur maximal d'un type (ex : il arrive à 256 pour un TINYINT UNSIGNED), MySQL adapte par défaut cette valeur pour qu'elle soit valide (256 transformé en 255). S'il n'y avait pas de contrainte d'unicité, tu te retrouves avec deux champs qui ont le même ID !

    Et enfin, mettre PRIMARY KEY crée automatiquement un index, et ça c'est judicieux pour un identifiant.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    ben je ne vois plus l'interet d'un champ auto incrément si on peut le modifier alors???

    je serais content d'avoir un exemple concret ;o|

  4. #4
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    L'intérêt de l'attribut AUTO_INCREMENT est que si tu ne fournies pas de valeur à la colonne (NULL ou 0), MySQL calcule automatiquement la valeur suivante de sa séquence. Donc tu n'as pas besoin de te soucier de l'identifiant numérique de tes lignes.

    C'est quand même plus pratique que spécifier une valeur non ? Mais comme je le disais, rien ne t'oblige à spécifier la valeur suivante de l'auto increment (ex : tu as fait un DELETE pour ID=5, et tu décides de réutiliser l'identifiant 5).

    Personnellement, je conseille d'utiliser toujours l'incrémentation automatique si on a spécifié AUTO_INCREMENT. Et tanpis pour les DELETE qui font des "trous" dans la séquence.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Ok merci je n'avais pas vu ça comme ça,
    mais maintenant je comprend mieux l'architecture des appli,

    Merci pour ces éclaircissements ;o)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ODBC] Recherche du champ qui est Primary Key
    Par XtofRoland dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/02/2006, 11h43
  2. PRIMARY KEY - UNIQUE - INDEX
    Par Thierry8 dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/12/2005, 23h28
  3. pb de primary key sur 2 colonnes
    Par new_wave dans le forum Designer
    Réponses: 14
    Dernier message: 25/11/2005, 11h05
  4. DROP PRIMARY KEY
    Par popopopo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/08/2005, 11h11
  5. BDD, r-a-z index et indice primary key ?
    Par lord_paco dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 11/07/2003, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo