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 :

insert ds une table seulement si la ligne n'existe pas deja, c'est possible?


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 17
    Points
    17
    Par défaut insert ds une table seulement si la ligne n'existe pas deja, c'est possible?
    bonjour,

    Jai une table (la cle est sur les 2 premiers champs)
    - announcement_id
    - user_id
    - is_deleted
    - .....

    je veux faire un insert dedans uniquement si la ligne n'existe pas deja...

    insert into announcement_user
    (select announcement_id, 735, 1, 0
    from announcements a
    where date_begin <= sysdate
    and sysdate <= date_exp)
    where not exists announcement_id = a.announcement_id
    and not exists user_id = 735

    Bon evidemment ca marche pas, quelau'un a une idee pls??????????

    Merci beaucoup

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Bonjour et merci d'appliquer un tant soi peu de règles, notament celle demandant d'indiquer la version des outils utilisés.

    La clause (NOT) EXIST ne fonctionne pas de cette façon. Elle est constitué d'un sous-select qui retourne un boolean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... Where NOT EXIST ( Select ... From ... Where ...) ...
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Membre averti
    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
    Points : 436
    Points
    436
    Par défaut
    Dans 10g, il est possible de faire (non testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    merge into announcement_user u
    using
    (
      select announcement_id, 735 user_id, 1 x, 0 y
      from annoucements
      where sysdate between date_begin and date_exp
    ) a
    on
    (
      a.announcement_id = u.announcement_id
      and
      a.user_id = u.user_id
    )
    WHEN NOT MATCHED THEN
    INSERT
      VALUES (a.announcement_id, a.user_id, a.x, a.y)
    Consultant et formateur Oracle

  4. #4
    Membre à l'essai
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 17
    Points
    17
    Par défaut C'est Magique
    Michel, merci beaucoup

    Je viens seulement de voir votre reponse, et elle repond totalement a ce que j'avais besoin.
    Pour moi c'est juste magique, ca marche :-)

    Je vais me pencher sur toutes les docs que je peux trouver pour juste comprendre tout ca ;-)

    Merci encore

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/10/2014, 11h19
  2. [interbase6]probleme d'insertion dans une table
    Par macadam314 dans le forum Bases de données
    Réponses: 10
    Dernier message: 22/02/2005, 14h21
  3. [Sybase] Temps d'une insertion dans une table
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/02/2005, 10h04
  4. Extraction d'un .txt et Insertion dans une table
    Par PoPmiSiR dans le forum Access
    Réponses: 8
    Dernier message: 28/10/2004, 19h13
  5. Détection insertion dans une Table
    Par abelman dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2004, 14h24

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