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

SQL Procédural MySQL Discussion :

clef etrangère


Sujet :

SQL Procédural MySQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut [resolu] clef etrangère
    bonjour,

    j'avais l'habitude de oracle mais la je dois utiliser mysql.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    CREATE TABLE Catbien(
    	idCatBien  SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    	description VARCHAR(20)	
    );
     
    CREATE TABLE SsCatbien(
    	idSsCatBien  SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    	description VARCHAR(20),
    	fkCatBien  SMALLINT UNSIGNED NOT NULL	
    );
    Voici la ligne que j'essaie d'executer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE SsCatbien MODIFY fkCatBien  SMALLINT FOREIGN KEY REFERENCES Catbien(idCatBien);
    J'ai pu lire que avant la notion de clef etrangere n'etait pas prise en compte par mySQL..
    j'utilise mysql 4.1.9

  2. #2
    Membre habitué Avatar de Cobaye
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 120
    Points : 154
    Points
    154
    Par défaut
    avec des tables en InnoDb tu peux les gérer.

  3. #3
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Il faut déclarer les tables en type InnoDB .

    Faut aussi que l'option InnoDB soit active sur le serveur.

    Pour la finesse SQL, regardes là:http://dev.mysql.com/doc/refman/5.0/fr/index.html

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    ok merci...
    maisj'ai deja rentre plein de données....enfin plein...cela m'a pris 20 mns..
    je pense que pour appliquer ce que vous m'avez dit, je dois relancer la base avec les modifications, non?
    On peut pas faire cela avec des alter table?
    Et sinon le fait d'avoir des clef etrangères c'est surtout mieux au niveau performance?
    Qu'est ce qu'on gagne???

  5. #5
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par nath-0-0
    Et sinon le fait d'avoir des clef etrangères c'est surtout mieux au niveau performance?
    Pas du tout, ça rajoute juste des contraintes.

    Citation Envoyé par nath-0-0
    Qu'est ce qu'on gagne???
    Je croyais que t'étais habitué d'Oracle ! Les ON DELETE CASCADE | SET NULL | NO ACTION..., ça te dit quelque chose?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    ah oui..... oui oui....
    bon faut dire aussi que cela fait 3 ans que j'avais plus touché a l'info.....
    alors y'a des trucs qui sont partis de ma petite tete!!!!
    ON DELETE CASCADE je me souviens mais le reste pas...
    Je vais aller voir ce que c'est

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

Discussions similaires

  1. Etat : 2 clefs etrangères sur la même table
    Par Toncelan dans le forum 4D
    Réponses: 5
    Dernier message: 26/12/2008, 14h30
  2. Insertion clef etrangère vide
    Par narutobaka dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/09/2008, 10h44
  3. [Access 2003] Limite de clef etrangères
    Par ashurai dans le forum Access
    Réponses: 5
    Dernier message: 06/12/2006, 11h34
  4. [FB 1.5.2] Pb requete avec clef etrangère
    Par gudul dans le forum SQL
    Réponses: 3
    Dernier message: 17/03/2006, 16h27
  5. conception - clef etrangère -cardinalité forte/faible
    Par sundjata dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/11/2005, 14h57

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