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

SGBD Perl Discussion :

[DBD::Oracle] test contraintes intégrité avant insert ou update ?


Sujet :

SGBD Perl

  1. #1
    Membre du Club Avatar de philobedo
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 66
    Points
    66
    Par défaut [Résolu][DBD::Oracle] test contraintes intégrité avant insert ou update ?
    Bonjour à tous,

    Alors voila dans certain cas il y a des contraintes sur des tables qui empêchent la bonne exécution d'une requête...
    Par exemple une contrainte d'unicité sur un champ va, lors de l'exécution d'une commande insert générer une erreur Oracle.

    Ma question est, existe t-il un moyen de tester si une requête respecte ou non les contraintes sur la table et suivant le cas exécuter ou non cette requête ?

    Merci d'avance pour vos réponse.
    A+
    Philobedo
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants."
    St Ex.

    Philobedo

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 211
    Points
    211
    Par défaut
    Bonjour,

    De moyen automatique, non.
    Après c'est au développeur (et ce quel que soit le langage) de choisir entre:
    - tenter l'INSERT et traiter l'erreur séparément si elle est du type "Unique constraint violated" par exemple
    - faire un select avant pour vérifier que l'on ne va pas générer de doublon, ou générer une erreur.

    Mais de manière plus générale, les contraintes devraient toujours être véfiées avant que l'on puisse tenter d'ajouter des données, c'est à ton application de contrôler que les utilisateurs ne peuvent pas générer des données erronnées ou non conforme.
    Ton design d'appli ne doit pas t'autoriser de lancer une action de mise à jour ou de création de données si ce n'est pas conforme au modèle de données (sinon pourquoi créer/modifier cette donnée ?)

  3. #3
    Membre du Club Avatar de philobedo
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 66
    Points
    66
    Par défaut
    Ok, merci
    On est d'accord qu'avant l'exécution d'une requête il faut tester et retester pour ne pas laisser l'utilisateur devant une erreur incompréhensible et parfois bloquante.
    C'est juste que je me demandai si des libs perl ne pouvaient pas faire ce genre de boulot ?!! Parce que c'est long de mettre en place ces "try ... catch" et comme je suis assez paresseux...!!
    Mais bon tant pis je vais continuer à me retrousser les manches...
    Merci
    A+
    Philobedo
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants."
    St Ex.

    Philobedo

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

Discussions similaires

  1. [PDO] test d'existance avant insertion
    Par iMech dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/02/2015, 18h46
  2. Test chevauchement Date avant insert
    Par rockley dans le forum DB2
    Réponses: 9
    Dernier message: 08/08/2013, 14h26
  3. test existence avant INSERT
    Par richard038 dans le forum SQL
    Réponses: 3
    Dernier message: 19/02/2007, 17h16
  4. Réponses: 10
    Dernier message: 24/09/2006, 14h08
  5. ORACLE : contraintes intégrité
    Par djbenvik dans le forum Oracle
    Réponses: 1
    Dernier message: 17/03/2006, 14h08

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