Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2007, 21h12   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 42
Points : 12
Points : 12
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 ?
strikerm59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 21h26   #2
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
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
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 09h12   #3
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Code :
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;
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h38.


 
 
 
 
Partenaires

Hébergement Web