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 Oracle Discussion :

Modifier PrimaryKey dans un Update


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut Modifier PrimaryKey dans un Update
    Bonjour,

    On m'a demandé de faire une requête où il faut modifer deux trois valeurs dans une table avec un UPDATE, la clé primaire est une concatenation de plusieurs champs de cette table et plusieurs valeurs appartenant à ceschamps doivent être modifer mais Oracle renvoi un message d'erreur comme quoi la requête s'est mal terminé, est ce que quelqu'un a une idée de comment faire ?

    Merci,

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Sans la requête, la description de vos tables, ni aucune donnée c'est très simple de vous aider.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut
    Voici l'une des requêtes testé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE MaTable
    SET MonChampCléPrimaire = 'untruc'
    SET UnChamp = 'unautretruc'
    WHERE Name = 'Moi';

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Ce n'est pas la bonne syntaxe, il faudrait l'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE MaTable
    SET MonChampCléPrimaire = 'untruc',
        UnChamp = 'unautretruc'
    WHERE Name = 'Moi';
    Par contre, c'est une extrèmement mauvaise idée d'avoir une clef primaire composée ainsi.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut
    Par contre, c'est une extrèmement mauvaise idée d'avoir une clef primaire composée ainsi.
    A oui, là par contre c'est au type qui a fait le mcd qu'il faut en parler, de toute façon lorsque l'on passe du MCD au MLD il y a bien des associations entres entité qui deviennent des tables avec comme clé primaire la concatenation des clé primaires des entités quel relie...

    Je sais pas si je me fait comprendre, enfin merci je vais déjà tester sa se serait bête d'être coincé pour une erreur bête comme sa

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par John Easy Voir le message
    A oui, là par contre c'est au type qui a fait le mcd qu'il faut en parler, de toute façon lorsque l'on passe du MCD au MLD il y a bien des associations entres entité qui deviennent des tables avec comme clé primaire la concatenation des clé primaires des entités quel relie..
    Euh non, quand on passe du MCD au MLD, une clef primaire composite se créé sur plusieurs colonnes, mais certainement pas sur de la concaténation...

  7. #7
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut
    Et bien on peut appeler sa comme on veux mais une clé primaire peut être composée d'un ou de plusieurs champs de la table, dans mon cas c'est plusieurs...

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Une clef primaire composée de plusieurs clefs étrangère ne pose aucun problème (dans la relation adéquate (1,n)).
    C'est une clef du type PK = (col1, col2, col3).

    Une clef concaténée revient à écrire bout à bout toutes les clefs étrangères dans une seule.
    Et là c'est potentiellement faux (si on ne gère pas un séparateur), ça ne suit pas la 3NF (donnée non-atomique), et c'est compliqué à utiliser.
    Ce serait une clef du type PK = col1 || col2 || col3.

    Si vous êtes dans le premier cas, il n'y a pas de soucis dans votre modélisation, c'était juste un problème de vocabulaire.

    Citation Envoyé par John Easy Voir le message
    Et bien on peut appeler sa comme on veux mais
    Non justement, une langue utilise des mots qui ont une signification.
    Si je me mets à vous appeler Bob, vous n'allez jamais comprendre que je m'adresse à vous.

  9. #9
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut
    Ok, j'ai pas du tout envie de me lancer dans un dialogue de sourd, et je n'ai aucune raison de mettre en doute les personnes qui m'on aidé à apprendre le merise-MCD-SQL, par contre c'est pas sa qui va faire avancer le chmilblik car je suis toujours coincé dans mon problème.

    Boby.

  10. #10
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par John Easy Voir le message
    Oracle renvoi un message d'erreur comme quoi la requête s'est mal terminé
    Règle de base : quand on a une erreur, il faut la fournir rigoureusement telle qu'elle apparaît, c'est à dire avec son code numérique et son libellé.

  11. #11
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut
    Bonjour,

    -les colonnes en question sont de type NCHAR
    -a version de Oracle est la 10g
    -la requête est lancé à partir de TOAD
    -l'erreur est: ORA-00933 Command not properly ended

  12. #12
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il faut également la structure de votre table et la vraie requête.

Discussions similaires

  1. [MySQL] modifier un chaine dans un UPDATE
    Par kimcharlene dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/09/2007, 03h01
  2. REPLACE dans un UPDATE
    Par outdial dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/09/2004, 11h00
  3. [Débutant][PS] modifier un insert en update
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/05/2004, 16h33
  4. Une ch'tite bizarrerie dans les Updates de SQL Server
    Par Wakko2k dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 08/04/2004, 14h14
  5. GROUP BY et HAVING dans un UPDATE
    Par MashiMaro dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/08/2003, 08h03

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