Partage
  • Partager sur Facebook
  • Partager sur Twitter

Contrôle d'intégritée avant INSERT

Oracle

Sujet résolu
    4 janvier 2012 à 13:58:21

    Bonjour à tous,

    Je suis en train de faire une mini-appli (si je peux l'appeler comme cela) en PHP qui doit me permettre d'alimenter une table avec des numéros de clients dans Oracle. Seulement avant de faire mon ajout ou mon commit (il faut que je me renseigne sur ce qui est mieux) je veux faire un contrôle d’existence des données à insérer.

    Seulement je ne vois pas comment faire si ce n'est une requête par client à ajouter puis tester si la requête renvois quelque chose. Mon fichier pouvant contenir plus de 300 clients, je ne veux pas mettre le serveur au trou avec autant de requêtes.

    Ma question est donc : Existe-t-il un moyen de contrôler l’existence de mon client dans la base avant de l'ajouter ?

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      4 janvier 2012 à 14:34:46

      Tu peux utiliser MERGE.

      Une table temporaire remplie avec un insert multi-lignes, et un INSERT + SELECT avec un left join dedans fera l'affaire aussi.
      • Partager sur Facebook
      • Partager sur Twitter
        9 janvier 2012 à 11:23:44

        Bonjour,

        Tout d'abord, désolé de répondre si tard et ensuite merci pour la réponse. J'avoue ne pas connaitre du tout le MERGE, mais je vais me renseigner dessus.

        En plus j'ai pensé bien plus tard qu'il était également possible de faire une première requête dans ma table client en faisant un IN avec la liste des valeurs présentes dans mon fichier. De ce fait je n'aurai récupéré que les lignes existantes.

        Mais mon but est d'insérer ce qui existe et de retourner ce qui n'existe pas à l'utilisateur (erreur de saisie sur un client par exemple).

        Merci encore et bonne journée ;)
        • Partager sur Facebook
        • Partager sur Twitter

        Contrôle d'intégritée avant INSERT

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown