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 :

Empêcher la modification d'une colonne


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 42
    Par défaut Empêcher la modification d'une colonne
    J'ai une table dans laquelle je défini un champ NO_SEQ et qui constitue la clé primaire de ma table.

    Comment puis-je faire pour empêcher que l'on puisse modifier la valeur de NO_SEQ ?

    Solution envisager : déclarer un trigger sur l'UPATE et re-affecter l'ancienne valeur pour NO_SEQ.

    Y a-t-il un autre moyen ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Des précisions ...
    Le trigger doit être défini pour se déclencher uniquement si la clé primaire est mise à jour. Il n'a pas à remettre l'ancienne valeur ce qui oblige d'avoir un trigger lignes (row trigger). Tout simplement, le trigger peut renvoyer une erreur non traitée dedans et l'instruction sera annulée

  3. #3
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE OR REPLACE TRIGGER matable_bu
       BEFORE UPDATE OF macle
       ON matable  FOR EACH ROW
    BEGIN
     raise_application_error (-20000,
                                      'Clé primaire non modifiable !',
                                      FALSE
                                     );
    END;

Discussions similaires

  1. demande de requete de modification d'une colonne
    Par jsdar dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/03/2007, 23h03
  2. Erreur de modification d'une colonne.
    Par grenoult dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/12/2006, 12h37
  3. [Oracle 9i] aide modification d'une colonne
    Par bubblelicious dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/03/2006, 15h29
  4. [Access] Modification d'une colonne ...
    Par hobotalker dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/02/2006, 11h03
  5. [DB2]Modification d'une colonne
    Par ahoyeau dans le forum DB2
    Réponses: 4
    Dernier message: 08/10/2004, 00h24

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