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

 MySQL Discussion :

FOREIGN KEY et AUTO_INCREMENT


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Par défaut FOREIGN KEY et AUTO_INCREMENT
    salam!
    pour utiliser auto_increment il nous faut une table de type MyISAM et pour la clef etrangere le type InnoDB! on peut pas les utiliser au meme temps(dans la meme table)?! je comprends pas bien à quoi sert chaque type de table!
    Merci pour votre aide!

  2. #2
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut InnoDB et MyIsam
    salut;
    Le auto_incrément marche sur les deux type de moteur de bases de données
    pour Foreign Key je sais pas;

    Mais je que je sais sur le moteur MYISAM c'est qu'il n'est pas transactionnel
    il est trés utile pour le stockage des données;
    InnoDB en ravanche est transactionnel
    Une table ne peut etre que d'un seul type InnoDB, MYISAM ou BerkeleyDB (BDB); car les moteur de base de données sont different

    Pour les clé etrangères tu peux t'en passer si t'a un probleme en rajoutant l'identifiant de la table parente

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    AUTO_INCREMENT fonctionne sur les deux types de tables MyIsam et InnoDB.
    Par contre la gestion des clés étrangères ne fonctionne qu'avec des tables InnoDB.

    Rien n'interdit de faire une architecture basée sur des clés étrangères avec des tables MyIsam mais les contraintes associées ne seront pas gérées par le moteur MyIsam donc c'est le programme qui utilise et alimente la base de données qui devra se taper le boulot de vérification du respect des contraintes.
    Comme c'est automatique avec des tables InnoDB, pourquoi s'en priver ?

    @buggen25 :
    Pour les clé etrangères tu peux t'en passer si t'a un probleme en rajoutant l'identifiant de la table parente
    Ajouter l'identifiant de la table parente dans une table, c'est faire une clé étrangère !
    Mais comme dit juste au-dessus, MyIsam ne vérifiera pas les contraintes associées aux clés étrangères puisqu'il ne les connait pas. Autrement dit, en MyIsam, rien n'interdira la saisie, dans la colonne de clé étrangère, d'un identifiant n'existant pas dans la table parente.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    A noter aussi qu'un SGBD est apprécié pour son contrôle de l'intégrité, il est donc très déconseillé de volontairement s'en passer.

    Ce type de contrôle apporte une simplicité de gestion d'erreur incroyable.
    Cet article traite de comment limiter la complexité applicative grâce au contrôle d'intégrité référentielle

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Par défaut
    merci pour votre aide!
    j'avais avant un probleme avc auto_increment et la solution c t la precision: ENGINE = MyISAM
    http://www.developpez.net/forums/d59...sil-ya-2-cles/

    j'ai trouvé qu'il fallait utilisé FOREIGN KEY et ça demande le type innoDB;
    mais la creaation de cette table meme sans le (foreign key) est impossible avc innoDB

  6. #6
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Avec un type innoDB on peut utiliser le contrôle d'intégrité référentiel ET l'auto increment.

Discussions similaires

  1. [FOREIGN KEY] petite question bete ...
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 16h35
  2. Probleme 'ALTER TABLE' et 'FOREIGN KEY'
    Par maahta dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/09/2003, 14h25
  3. [IB71] Je ne peux plus supprimer mes foreign key...
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 3
    Dernier message: 19/09/2003, 14h39
  4. [postgresql][foreign key]
    Par elea1206 dans le forum Requêtes
    Réponses: 5
    Dernier message: 28/08/2003, 12h07
  5. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34

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