[MySQL] et/ou [SQL Server] bien traiter les doublons...
6 réponses
Gilles TOURREAU
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de
données. Cela pour éviter d'avoir des informations en doubles
(références en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des
informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les
informations qu'il a saisie existe déjà...
Je vois 2 solutions :
- Soit faire un INSERT et traiter les exceptions généré par SQL Server.
Si par exemple l'erreur n°2627 est déclenché (Violation d'une
contrainte) je dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que
l'utilisateur a saisie n'existe pas.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Rémy
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
Bonjour,
<.......>
Selon vous quelle solution est la meilleure ?
Dans mes bases MySQL, je gère les problèmes de doublons en faisant en SELECT avant l'INSERT, même si c'est pénalisant en terme de charge, ca me convient mieux dans ma gestion...
En vous remerciant par avance de vos lumières...
Merci des tiennes surtout ;o)
@+ rémy
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
mn.abf37d69a00a0573.60965@pos.fr...
Bonjour,
Bonjour,
<.......>
Selon vous quelle solution est la meilleure ?
Dans mes bases MySQL, je gère les problèmes de doublons en faisant en SELECT
avant l'INSERT, même si c'est pénalisant en terme de charge, ca me convient
mieux dans ma gestion...
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
Bonjour,
<.......>
Selon vous quelle solution est la meilleure ?
Dans mes bases MySQL, je gère les problèmes de doublons en faisant en SELECT avant l'INSERT, même si c'est pénalisant en terme de charge, ca me convient mieux dans ma gestion...
En vous remerciant par avance de vos lumières...
Merci des tiennes surtout ;o)
@+ rémy
Emmanuel Lecoester
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de données. Cela pour éviter d'avoir des informations en doubles (références en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les informations qu'il a saisie existe déjà...
Je vois 2 solutions : - Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que l'utilisateur a saisie n'existe pas.
Selon vous quelle solution est la meilleure ?
Laisser faire la base de données. Ensuite si tu me dis qu'il n'y a que10% de chances pour que ce soit un tout nouveau truc, le select avant serait plus adapté.
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
mn.abf37d69a00a0573.60965@pos.fr...
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de
données. Cela pour éviter d'avoir des informations en doubles (références
en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des
informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les
informations qu'il a saisie existe déjà...
Je vois 2 solutions :
- Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si
par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je
dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que
l'utilisateur a saisie n'existe pas.
Selon vous quelle solution est la meilleure ?
Laisser faire la base de données. Ensuite si tu me dis qu'il n'y a que10% de
chances pour que ce soit un tout nouveau truc, le select avant serait plus
adapté.
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de données. Cela pour éviter d'avoir des informations en doubles (références en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les informations qu'il a saisie existe déjà...
Je vois 2 solutions : - Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que l'utilisateur a saisie n'existe pas.
Selon vous quelle solution est la meilleure ?
Laisser faire la base de données. Ensuite si tu me dis qu'il n'y a que10% de chances pour que ce soit un tout nouveau truc, le select avant serait plus adapté.
Firetox
Bonjour,
il faut juste gerer le message de retour toutes les bases mySQL par exemple va renvoyer duplicate entry avec un N° d'erreur SQLServer aussi
il suffit d'avoir une gestion des N° erreur et si pas Ok alors soit une plante soit un doublon mais comme le dit manu faut laisser faire la base
bon dev @+
Firetox "Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de données. Cela pour éviter d'avoir des informations en doubles (références en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les informations qu'il a saisie existe déjà...
Je vois 2 solutions : - Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que l'utilisateur a saisie n'existe pas.
Selon vous quelle solution est la meilleure ?
En vous remerciant par avance de vos lumières...
Cordialement
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Bonjour,
il faut juste gerer le message de retour
toutes les bases mySQL par exemple va renvoyer duplicate entry avec un N°
d'erreur
SQLServer aussi
il suffit d'avoir une gestion des N° erreur et si pas Ok alors soit une
plante soit un doublon
mais comme le dit manu faut laisser faire la base
bon dev
@+
Firetox
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
mn.abf37d69a00a0573.60965@pos.fr...
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de
données. Cela pour éviter d'avoir des informations en doubles (références
en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des
informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les
informations qu'il a saisie existe déjà...
Je vois 2 solutions :
- Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si
par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je
dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que
l'utilisateur a saisie n'existe pas.
il faut juste gerer le message de retour toutes les bases mySQL par exemple va renvoyer duplicate entry avec un N° d'erreur SQLServer aussi
il suffit d'avoir une gestion des N° erreur et si pas Ok alors soit une plante soit un doublon mais comme le dit manu faut laisser faire la base
bon dev @+
Firetox "Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de données. Cela pour éviter d'avoir des informations en doubles (références en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les informations qu'il a saisie existe déjà...
Je vois 2 solutions : - Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que l'utilisateur a saisie n'existe pas.
Selon vous quelle solution est la meilleure ?
En vous remerciant par avance de vos lumières...
Cordialement
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Gilles TOURREAU
Gilles TOURREAU a écrit :
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de données. Cela pour éviter d'avoir des informations en doubles (références en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les informations qu'il a saisie existe déjà...
Je vois 2 solutions : - Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que l'utilisateur a saisie n'existe pas.
Selon vous quelle solution est la meilleure ?
En vous remerciant par avance de vos lumières...
Cordialement
Merci pour vos réponses... Je vais adopter la méthode n°1 et essayer de trouver le n° d'erreur qui correspont à une erreur de doublon pour les différentes bases...
Cordialement
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Gilles TOURREAU a écrit :
Bonjour,
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de
données. Cela pour éviter d'avoir des informations en doubles (références en
stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des informations à
l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les
informations qu'il a saisie existe déjà...
Je vois 2 solutions :
- Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si
par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je dis
alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que
l'utilisateur a saisie n'existe pas.
Selon vous quelle solution est la meilleure ?
En vous remerciant par avance de vos lumières...
Cordialement
Merci pour vos réponses... Je vais adopter la méthode n°1 et essayer de
trouver le n° d'erreur qui correspont à une erreur de doublon pour les
différentes bases...
J'ai plusieurs contraintes UNIQUE dans différentes tables de ma base de données. Cela pour éviter d'avoir des informations en doubles (références en stock, ...etc).
J'ai une application qui demande à l'utilisateur de saisir des informations à l'écran.
Je voudrais savoir comment gérer et prévenir l'utilisateur que les informations qu'il a saisie existe déjà...
Je vois 2 solutions : - Soit faire un INSERT et traiter les exceptions généré par SQL Server. Si par exemple l'erreur n°2627 est déclenché (Violation d'une contrainte) je dis alors à l'utilisateur de saisir autre chose !
- Ou alors je fais un SELECT avant le INSERT pour voir si ce que l'utilisateur a saisie n'existe pas.
Selon vous quelle solution est la meilleure ?
En vous remerciant par avance de vos lumières...
Cordialement
Merci pour vos réponses... Je vais adopter la méthode n°1 et essayer de trouver le n° d'erreur qui correspont à une erreur de doublon pour les différentes bases...
Cordialement
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Emmanuel Lecoester
> Merci pour vos réponses... Je vais adopter la méthode n°1 et essayer de trouver le n° d'erreur qui correspont à une erreur de doublon pour les différentes bases...
demande nous si besoin ;)
> Merci pour vos réponses... Je vais adopter la méthode n°1 et essayer de
trouver le n° d'erreur qui correspont à une erreur de doublon pour les
différentes bases...
> Merci pour vos réponses... Je vais adopter la méthode n°1 et essayer de trouver le n° d'erreur qui correspont à une erreur de doublon pour les différentes bases...
demande nous si besoin ;)
Jerome PAULIN
> - Ou alors je fais un SELECT avant le INSERT pour voir si ce que l'utilisateur a saisie n'existe pas.
Bonjour,
Sous MySQL, tu peux peut etre utiliser l'instruction replace() au lieu de ton insert(), c'est fait pour éviter le doublons (quand la clé primaire n'est pas une clé de type autonumber)...
gg
> - Ou alors je fais un SELECT avant le INSERT pour voir si ce que
l'utilisateur a saisie n'existe pas.
Bonjour,
Sous MySQL, tu peux peut etre utiliser l'instruction replace() au lieu
de ton insert(), c'est fait pour éviter le doublons (quand la clé
primaire n'est pas une clé de type autonumber)...
> - Ou alors je fais un SELECT avant le INSERT pour voir si ce que l'utilisateur a saisie n'existe pas.
Bonjour,
Sous MySQL, tu peux peut etre utiliser l'instruction replace() au lieu de ton insert(), c'est fait pour éviter le doublons (quand la clé primaire n'est pas une clé de type autonumber)...