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 :

MySQL server " clé etrangére"


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut MySQL server " clé etrangére"
    salut

    merci de m'aider vraiment je suis coincé!!!!!!
    création 3 tables :
    table utilisateurs : id_user, user_name , password
    table type : id_tpe, tpe_libelle
    table eve : id_tpe, id_user

    avec
    Les attributs en gras représentent les clés primaires .
    Les attributs souligné représentent les clés étrangères.

    le code pour crée la table utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table utilisateur (
         id_user  smallint unsigned auto_increment ,
         user_name varchar (50) not null,
         password   smallint unsigned not null ,
         primary key (id_user)
        );
    le code pour crée la table type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create table type  (
         id_tpe  smallint unsigned auto_increment ,
         tpe_libelle varchar (50) not null,
         primary key (id_tpe)
        );
    tous ca marche
    le problème est la
    (table évènements exactement avec la création de les clés étrangères )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table eve  (
         id_user  smallint unsigned, 
         id_tpe  smallint unsigned,
         Primary Key (id_user, id_tpe),
         Foreign Key (id_user) references utilisateur(id_user),
         Foreign Key (id_tpe) references type(id_tpe)
    );
    mais comment je vérifier que ces sont deux clés étrangères?!!
    car quant je tape
    la resulta un table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    field : id_suer , id_tpe 
    type : smallint  unsigned (pour les deux )
    null : no (pour les deux)
    key : pri (pour les deux )
    default : 0 (pour les deux )
    extra : ( rien pour les deux )
    merci de m'aider

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Pour une simple vérification, il est possible de faire:
    Pour plus d'information, il faudra faire une requête sur les tables de la base information_schema.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    salut

    merci Oishiiii

    j'ai fais ca :
    dans la table utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into utilisateur ( user_name , password ) values ( 'wasim ',123);
    et dans la table type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into type (tpe_libelle) values (' entrer');
    c'est bien passer pour le moment.
    pour table eve où les clés étrangères c'est pas automatiquement id_user et id_tpe sont inscrit ?

    mon but est de faire que:

    un utilisateur qui possède ce password et user_name a entrer or sortir ( type d'évènement )dans la salle .

    utilisateur -> table utilisateur champs : user_name et password
    enter or sortir -> table type champs : tpe_libelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select user_name, password , tpe_libelle
      from utilsiateur , type , eve 
    where utilisateur.id_user = eve.id_user
    and 
    type.id_tpe = eve.id_tpe
    ;
    remarque : tous ce update et delete ....etc ce fais par l'interface java (netbeans)

  4. #4
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Citation Envoyé par pikamo Voir le message
    pour table eve où les clés étrangères c'est pas automatiquement id_user et id_tpe sont inscrit ?
    La table de jointure (eve) ne s'alimente pas toute seule.
    Il faut récupérer les identifiants de l'utilisateur et du type et réaliser l'INSERT "à la main".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO eve(id_tpe, id_user) VALUES (4, 8);
    Pour récupérer la valeur dernière valeur générée par une colonne auto-incrémentée en SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT LAST_INSERT_ID();
    ou avec PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lastId = mysql_insert_id();
    Vous trouverez certainement plus d'infos dans le forum Java.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    salut

    merci et désolé moi svp , c'est ma 1ere fois que j'ai crée une base de données avec MySQL server


    j'ai cherche un peu et j'ai trouve ca :
    ON DELETE CASCADE ON UPDATE CASCADE, !!!
    avec ces options , le table eve peut automatiquement inscrit id_user et id_tpe ??!!

  6. #6
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Non, la table "eve" ne peux pas s'alimenter toute seule, c'est impossible. C'est à vous de choisir les valeurs que vous insérer.

    ON DELETE CASCADE sur une clé étrangère signifie que si l'on supprime une ligne dans la table parent, toutes les lignes de la table enfant lui faisant référence seront supprimées automatiquement.

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

Discussions similaires

  1. MySQL server "clé etrangère"
    Par pikamo dans le forum JDBC
    Réponses: 2
    Dernier message: 28/03/2010, 12h11
  2. [MySQL] Problème de rquête avec Quôte
    Par yom17 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/10/2006, 10h58
  3. ERROR 2003: Can't connect to MySQL server on 'localhost'...
    Par tonton54 dans le forum Installation
    Réponses: 8
    Dernier message: 25/04/2004, 16h51
  4. [Connexion MySQL] Can't connect to MySQL server
    Par mat_dum dans le forum Outils
    Réponses: 12
    Dernier message: 17/07/2003, 07h49

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