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 :

Condition UNIQUE sur plusieurs champs


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 206
    Par défaut Condition UNIQUE sur plusieurs champs
    Bonjour


    Je cherche à appliquer la contrainte unique sur plusieurs de mes champs d'une table.

    J'ai ceci qui fonctionne sous SQL Server, mais je cherche l'équivalent pour Oracle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ALTER TABLE [dbo].[table] WITH NOCHECK ADD 
    	CONSTRAINT [MaContrainteUnique] UNIQUE 
    	(
    		[champs1],
    		[champs2],
    		[champs3],
    		[champs4],
     
    	)
    Évidemment, j'ai fait des recherches mais je n'ai pas trouvé ce qu'il me fallait. De plus, mes connaissances en requêtes Oracle sont proches de 0 !

    Merci d'avance

    PS : si la contrainte unique peut être faite directement dans le CREATE Table, je suis preneur également !

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE nom_owner.nom_table ADD CONSTRAINT nom_constraint
     UNIQUE (champ1, champ2);
    Pour le faire dans le create, rajoute ceci après les colonnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    champ3 Number,
    CONSTRAINT nom_constraint UNIQUE (champ1, champ2)
    Tu peux aussi directement créer un index unique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE UNIQUE INDEX nom_index ON nom_table (champ1, champ2))
    TABLESPACE nom_tablespace

  3. #3
    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 remarque sur la dernière option de McM :

    En créant l'index unique, la contrainte d'unicité n'existe pas.
    En créant la contrainte d'unicité, l'index est par contre obligatoirement créé.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 206
    Par défaut
    Super, merci à vous

  5. #5
    Membre éclairé Avatar de fahdijbeli
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 281
    Par défaut
    salut,
    bonne remarque de Waldar , mais je sais pas pourquoi ils vont créer des index uniques pour s'assurer que les champs doivent être uniques à mon avis les index ce sont des autres concepts par exemple pour accélérer l'interrogation aux bases de données, donc pour mettre un ensemble de champs unique juste faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE nom_owner.nom_table ADD CONSTRAINT nom_constraint
     UNIQUE (champ1, champ2);
    je sais pas pourquoi les index parce que j'ai vu ce problème dans la plupart des discussions

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

Discussions similaires

  1. liste unique sur plusieurs champs
    Par nicolas.poulain dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/01/2009, 08h47
  2. requête condition sur plusieurs champs
    Par grinder59 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/02/2007, 13h52
  3. Recherche d'un mot avec LIKE sur plusieurs champs
    Par reynhart dans le forum Langage SQL
    Réponses: 16
    Dernier message: 26/11/2004, 17h41
  4. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55
  5. recuperer les id sur plusieurs champs
    Par matN59 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2004, 10h23

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