Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels 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 06/07/2007, 02h44   #1
Invité régulier
 
Inscription : mai 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 30
Points : 7
Points : 7
Par défaut Unicité des enregistrement à l'aide de la condition "ET"

Bonjour,
Je voudrai savoir si c'est possible d'introduire une condition d'unicité utilisant la condition logique "ET". J'explique :

par exemple :
Si on a le même "ID", avant de rejeter l'enregistrement, je veux que le SGBD vérifie le champs "DATE" aussi. S'il trouve qu'on a un meme ID, mais la DAte diffère, il doit pas rejeter la ligne correspondante.

Comment faire pour introduire une condition pareille ?
Merci d'avance
DBA_doom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2007, 08h14   #2
Membre régulier
 
Inscription : octobre 2006
Messages : 73
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : octobre 2006
Messages : 73
Points : 85
Points : 85
Ca dépend où tu veux mettre ta condition.
Si c'est via une contrainte d'unicité (Unique Key par exemple), alors il suffit de créer une contrainte composée de ton id et de ta date (ID,DATE).
Harry Potter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2007, 09h33   #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
Si j'ai bien compris, il ne peut y avoir qu'un seul enregistrement avec le meme id ?
Si oui

ID ->primary key
+ trigger qui empeche le changement de date

Code :
1
2
3
4
ON UPDATE FOR EACH ROW
IF :NEW.date<>:OLD.DATE THEN
 raise....
END IF;
__________________
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
Vieux 06/07/2007, 21h42   #4
Invité régulier
 
Inscription : mai 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 30
Points : 7
Points : 7
merci pour vos réponses.
Moi ce que je cherche c'est que le SGBD (Oracle) charge une ligne qui a un ID qui existe déjà à condition que cet enregistrement a une date différente.
Exemple :
ID Date
123 05/06/2007

je ve que le SGBD laisse passer par exemple la ligne suivante :

123 09/06/2008

qui le meme ID mais pas la meme date.

Comment faire ?
DBA_doom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2007, 21h49   #5
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Je te propose de mettre id+date comme clé primaire.
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 08h05   #6
Membre régulier
 
Inscription : octobre 2006
Messages : 73
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : octobre 2006
Messages : 73
Points : 85
Points : 85
Il me semblait bien que c'était la meilleure solution !
Harry Potter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 23h27   #7
Invité régulier
 
Inscription : mai 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 30
Points : 7
Points : 7
effectivement c'est la bonne.

MERCI à vous tous
DBA_doom est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h20.


 
 
 
 
Partenaires

Hébergement Web