Vérification de l'existence de données dans une table avant insertion
Bonsoir tout le monde,
Je voudrais savoir, svp, comment on fait pour vérifier qu'une donnée existe dans une table avant d'en rajouter, histoire d'éviter les doublons.
Concrètement, j'ai importé un fichier excel via ssms dans une table, réalisé la connexion à la base dans java, et essayé de faire correspondre à chaque champ son équivalent dans ma base, en récupérant la clé générée...
Exemple concret:dans ma base j'ai 4 tables(je vais pas donner les noms exacts, secret d'entreprise oblige...mon tuteur connait très bien ce forum....)
Contrat(id_contrat, id_pays, id_techno, nom_contrat); Techno(id_techno, nom_techno), Pays(id_pays, id_region, nom_pays), Region(id_region, nom_region). Les clés sont autoincrémentées.
Le fichier(transformé en table) a les champs suivants table_Importee(nom_contrat,nom_techno, nom_pays, nom_region). Dans mon code java, j'insère d'abord le nom de région, je récupère la clé que j'insère dans la table pays en même temps que le nom_pays, puis récupère la clé et enfin insère dans la table Contrat. Schématiquement ça donne Region-->Pays--> Contrat d'une part, et Techno-->Contrat d'autre part.
-->j'aimerais supprimer les lignes dans la table table_Importee où le même nom de contrat revient. Je pourrais avoir par exemple: (OM, F50,Allemagne, EUR) et (OM, F60, France, Eur), eh bien j'aimerais que l'un des deux disparaisse, soit au niveau de la table (suppression de ces "doublons" là), ou lors de l'insertion(si un nom similaire existe, on passe au suivant).
-->Je voudrais que dans le cas des tables PAYS,REGION et TECHNO, il n'y ait qu'une seule occurrence par valeur (par exemple si pour l'ensemble des 5000 enregistrements qui constituent la table importée les pays sont répartis suivant 4 régions, la table région devrait contenir juste 4 enregistrements...)
S'il vous plait quelle requête pourrais-je utiliser? le peu de connaissance que j'ai en t-sql y est déja passé, sans que je trouve de solution:aie::aie:
Bien voila, je m'arrête ici pour l'instant, en vous remerciant d'être arrivé au bout de ce loooooooooooonnng message.