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 :

cles primaires


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut cles primaires
    Re bonjour, question, j'ai plusieures tables avec comme cle primaire un numero d'ID.
    Je décide de mettre a jour un id dans une table, est ce que cette mise a jour est repercutée dans les autres tables (id mis a jour dans les autres tables) ou bien y at-il une manip a faire pour ca?
    Merci

  2. #2
    Membre Expert
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Par défaut
    Bonjour,

    C'est tout à fait possible si j'ai bien compris le problème . S'il s'agit de table reliées par une FOREIGN KEY, il faut utiliser une option ressemblant à :

  3. #3
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    ok merci je vais essayer çà.
    Sinon lorsque je fais un update sur une table a partir de donnees inclues dans une autre table, il me jette car pour certains champs ils ont disparus entre deux donc on essaye d'inserer une valeur null dans une collone qui est une cle primaire.
    Donc ce je veux faire c'est un update de ma colonne mais je veux qu'il rejette les donnes lorsque elles sont NULL. Je peux faire ca avec une commande toute bebete?

    Par exemple voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UPDATE ANAGPERS
    SET    ID_PERSONA = (SELECT MIN(ANAGPERSNEW.ID_PERSONA) 
                         FROM ANAGPERSNEW 
                         WHERE ANAGPERSNEW.CSF_CFSPERSONA = ANAGPERS.CSF_CFSPERSONA)  
    WHERE EXISTS (SELECT ANAGPERSNEW.ID_PERSONA 
                  FROM ANAGPERSNEW 
                  WHERE ANAGPERSNEW.CSF_CFSPERSONA = ANAGPERS.CSF_CFSPERSONA)
    Clairement ici on suppose qu'un user s'est fais virer donc son id n'existe plus, du coup quand je fais un update il essaye d'inserer une valeur NULL a la place d'un ID existant. Moi je veuxs qu'il ne tiene pas compte des valeur NULL et qu'il les rejette sans essayer d'insere la valeur

  4. #4
    Membre Expert
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Par défaut
    En MySQL il existe une fonction nommée IFNULL() qui permet de pouvoir renvoyée une autre valeur si le résultat d'une expreesion est NULL. Une telle fonction te serait peut etre utile. l'idée serait de renvoyé ID_PERSONA si l'expression est nulle.

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE ANAGPERS 
    SET    ID_PERSONA = (SELECT MIN(ANAGPERSNEW.ID_PERSONA) 
                         FROM ANAGPERSNEW 
                         WHERE ANAGPERSNEW.CSF_CFSPERSONA = ANAGPERS.CSF_CFSPERSONA)  
    WHERE EXISTS (SELECT ANAGPERSNEW.ID_PERSONA 
                  FROM ANAGPERSNEW 
                  WHERE ANAGPERSNEW.CSF_CFSPERSONA = ANAGPERS.CSF_CFSPERSONA
                    AND ANAGPERSNEW.ID_PERSONA IS NOT NULL)

  6. #6
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    Yep!
    j'ai essayer avec cette façon de faire ca fonctionne impec! merci

    Voici le code copier /coller tel que je l'ai utiliser.
    Ici pour une autre table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UPDATE    ASSDISC
    SET              ID_PERSONA =
                              (SELECT     MIN(ANAGPERSREP.NEW_ID_PERSONA)
                                FROM          ANAGPERSREP
                                WHERE      ASSDISC.ID_PERSONA = ANAGPERSREP.OLD_ID_PERSONA)
    WHERE     EXISTS
                              (SELECT     ANAGPERSREP.NEW_ID_PERSONA
                                FROM          ANAGPERSREP
                                WHERE      ASSDISC.ID_PERSONA = ANAGPERSREP.OLD_ID_PERSONA AND ANAGPERSREP.NEW_ID_PERSONA IS NOT NULL)
    Merci

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

Discussions similaires

  1. Déterminer si un champ est une clé primaire
    Par fbalien dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/09/2019, 10h19
  2. Clé primaire et incrémentation automatique
    Par spacegoogie dans le forum 4D
    Réponses: 4
    Dernier message: 20/06/2005, 10h36
  3. [debutant]cle primaire particuliere
    Par christophebmx dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/08/2004, 13h27
  4. [ db2 ] cle primaire autoincrement
    Par hocinema dans le forum DB2
    Réponses: 4
    Dernier message: 25/02/2004, 14h20
  5. XSD, Cle primaire...
    Par Goupil dans le forum Valider
    Réponses: 3
    Dernier message: 21/10/2003, 09h04

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