par
Ryle » 26 janv. 2021, 12:31
Salutations !
Il y a plusieurs façon de faire cela et tout dépend du volume de données que tu as en base et à traiter. Si tu traites peu de données à chaque fois, tu peux faire un SELECT COUNT(*) en base pour vérifier si l'enregistrement existe déjà ou non. Si la requête retourne 0, c'est qu'il n'existe pas et tu peux donc réaliser l'insertion, et si elle retourne 1 (ou plus mais il ne devrait à priori pas

), c'est qu'il existe déjà et dans ce cas, c'est une mise à jour qu'il faut effectuer. Ce select et un simple if/elfe devrait donc te permettre de faire ce que tu souhaites
Idéalement tu préparerais deux requêtes (un insert et un update) et dans le if, tu exécutes celle dont tu as besoin en lui passant les paramètre de l'enregistrement à créer ou à mettre à jour.
L'inconvénient de vérifier l'existence en base à chaque enregistrement, c'est que tu vas faire un select pour chaque enregistrement de ton flux XML. S'il y en a peu à la fois, ça va, si tu en traites par milliers, ça peut faire beaucoup de requêtes envoyées à la base et c'est pas forcément terrible en terme de performance... à voir donc s'il ne faut pas optimiser ce contrôle d'existence en fonction de ton contexte

Salutations !
Il y a plusieurs façon de faire cela et tout dépend du volume de données que tu as en base et à traiter. Si tu traites peu de données à chaque fois, tu peux faire un SELECT COUNT(*) en base pour vérifier si l'enregistrement existe déjà ou non. Si la requête retourne 0, c'est qu'il n'existe pas et tu peux donc réaliser l'insertion, et si elle retourne 1 (ou plus mais il ne devrait à priori pas :)), c'est qu'il existe déjà et dans ce cas, c'est une mise à jour qu'il faut effectuer. Ce select et un simple if/elfe devrait donc te permettre de faire ce que tu souhaites ;)
Idéalement tu préparerais deux requêtes (un insert et un update) et dans le if, tu exécutes celle dont tu as besoin en lui passant les paramètre de l'enregistrement à créer ou à mettre à jour.
L'inconvénient de vérifier l'existence en base à chaque enregistrement, c'est que tu vas faire un select pour chaque enregistrement de ton flux XML. S'il y en a peu à la fois, ça va, si tu en traites par milliers, ça peut faire beaucoup de requêtes envoyées à la base et c'est pas forcément terrible en terme de performance... à voir donc s'il ne faut pas optimiser ce contrôle d'existence en fonction de ton contexte :)