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

Langage SQL Discussion :

Petit soucis de compréhension


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 79
    Points : 66
    Points
    66
    Par défaut Petit soucis de compréhension
    Bonsoir,

    j'ai deux tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    /* Table: ADM_FONCTIONS, Owner: SYSDBA */
     
    CREATE TABLE "ADM_FONCTIONS" 
    (
      "IDFONCTION"	INTEGER NOT NULL,
      "NOMFONCTION"	CHAR(50),
      "DESCRIPTIONFONCTION"	CHAR(255),
      "IDFORMULAIRE"	INTEGER,
      "CREELE"	CHAR(50),
      "CREEPAR"	CHAR(50),
      "CREESUR"	CHAR(50),
      "SUPPRIMELE"	CHAR(50),
      "SUPPRIMEPAR"	CHAR(50),
      "SUPPRIMESUR"	CHAR(50),
    CONSTRAINT "PK_ADM_FONCTIONS" PRIMARY KEY ("IDFONCTION")
    );
     
     
    /* Table: ADM_UTILISATEURSFONCTIONS, Owner: SYSDBA */
     
    CREATE TABLE "ADM_UTILISATEURSFONCTIONS" 
    (
      "IDUTILISATEUR"	INTEGER NOT NULL,
      "IDFONCTION"	INTEGER NOT NULL,
    CONSTRAINT "PK___ADM_UTILISATEURSFONCTIONS" PRIMARY KEY ("IDUTILISATEUR", "IDFONCTION")
    );
    Je voudrais effectuer une jointure entre les tables 'ADM_FONCTIONS' et 'ADM_UTILISATEURSFONCTIONS'.

    J'utilise la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ALTER TABLE ADM_UTILISATEURSFONCTIONS
    ADD CONSTRAINT FK___FONCTIONS
    FOREIGN KEY (IdFonction) REFERENCES ADM_UTILISATEUR_(IDFonction)
    ON DELETE CASCADE
    ON UPDATE CASCADE;
    En l'executant j'ai le message :
    Unsuccessful metadata update
    could not find UNIQUE INDEX with specified columns
    Statement: ALTER TABLE ADM_UTILISATEURSFONCTIONS
    D'un point de vue pratique, je ne peux faire de jointure entre mes deux tables ?
    Si ça a une importance, je suis sur interbase.

    Merci d'avance

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Tu references 1 table ADM_UTILISATEUR_ ds ta contrainte, est-ce qu'elle existe ?
    Ce ne serait pas ça plutot ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REFERENCES ADM_FONCTIONS (IDFONCTION)
    [edit]
    BTW :
    Citation Envoyé par AlexB59
    Je voudrais effectuer une jointure entre les tables 'ADM_FONCTIONS' et 'ADM_UTILISATEURSFONCTIONS'.
    le fait de rendre obligatoire le lien entre certaines valeurs d'une table et la clef d'1 autre est 1 contrainte référentielle.
    1 jointure est 1 opération d'algèbre relationnelle consistant à produire 1 ensemble à partir d'1 ou plusieurs ensembles (en bref : 1 bête select * from table1 join table2 on ... par ex. )
    [/edit]

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    CREATE TABLE ADM_FONCTIONS
    (
      IDFONCTION               INTEGER NOT NULL,
      NOMFONCTION              CHAR(50),
      DESCRIPTIONFONCTION      CHAR(255),
      IDFORMULAIRE             INTEGER,
      CREELE                   CHAR(50),
      CREEPAR                  CHAR(50),
      CREESUR                  CHAR(50),
      SUPPRIMELE               CHAR(50),
      SUPPRIMEPAR              CHAR(50),
      SUPPRIMESUR              CHAR(50),
      CONSTRAINT PK_ADM_FONCTIONS 
                 PRIMARY KEY (IDFONCTION)
    );
     
     
    CREATE TABLE ADM_UTILISATEURSFONCTIONS
    (
      IDUTILISATEUR   INTEGER NOT NULL,
      IDFONCTION      INTEGER NOT NULL,
      CONSTRAINT PK_ADM_UTILISATEURSFONCTIONS 
                 PRIMARY KEY (IDUTILISATEUR, IDFONCTION)
    ); 
     
    ALTER TABLE ADM_UTILISATEURSFONCTIONS
    ADD CONSTRAINT FK_FONCTION FOREIGN KEY (IDFONCTION) 
                   REFERENCES ADM_FONCTIONS (IDFONCTION) 
                   ON DELETE CASCADE ON UPDATE CASCADE;
    Serait plus correct !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 79
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    merci pour votre aide.
    La précipitation n'est jamais bonne...

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 04/04/2012, 11h17
  2. Réponses: 9
    Dernier message: 23/08/2011, 10h18
  3. Petit souci de compréhension de la Position
    Par zooffy dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/02/2011, 14h29
  4. Réponses: 1
    Dernier message: 08/07/2010, 12h23
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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