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 :

index de fonction


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 190
    Par défaut index de fonction
    salut
    j'ai un index fonction comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SQL> CREATE TABLE t(cod_soc varchar2(4),mat varchar2(10), is_default int DEFAULT 0);
     
    TABLE created.
     
    SQL> CREATE UNIQUE INDEX i ON t (case when(is_default = 1) then 1 end);
     
    INDEX created.
    je suis sur que j'ai une seule ligne avec is_default = 1
    mais mon prob je veux avoir une seule ligne avec is_default = 1 pour chaque
    cod_soc et mat
    j'espère que j'été clair

  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
    Vous avez oublié de poser une question !

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 190
    Par défaut
    ma question est comment je peux avoir une seule ligne avec is_default = 1 pour chaque cod_soc et mat

  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
    Quel rapport avec l'index de fonction ?
    Il faut plutôt regarder du côté des triggers, ou passer par une vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select cod_soc, mat, 
           case row_number() over(partition by cod_soc, mat order by 1) when 1 then 1 else 0 end as is_default
      from t;

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 190
    Par défaut
    Merci Walder
    mais mon prob je veux appliquées cette contrainte sur les valeurs insérrées

  6. #6
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL> CREATE UNIQUE INDEX i ON t (case when(is_default = 1) then cod_soc end , case when(is_default = 1) then mat end);
    Cet index aura code_soc et mat lorsque is_default=1 et les autres cas ne seront pas indexés vu que els 2 colonnes seront nulles.

    Cordialement,
    Franck.

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 190
    Par défaut
    Merci pachot
    c'est exactement ce que je veux
    merci encore une fois pachot et walder

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/02/2008, 08h17
  2. Tuning requête et indexes sur fonction
    Par Mehdilis dans le forum Oracle
    Réponses: 3
    Dernier message: 26/02/2007, 13h36
  3. Requete group by et index sur fonction
    Par Omsey dans le forum Oracle
    Réponses: 8
    Dernier message: 26/10/2006, 10h26
  4. indexer uen fonction d'un DLL
    Par athos- dans le forum C++
    Réponses: 6
    Dernier message: 22/06/2006, 13h35
  5. index sur fonction
    Par Spoutnik dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/05/2006, 16h18

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