Bonjour est il possible de faire un insert et un update en meme temps(dans la meme requete) sur 2 donnees differentes?
Bonjour est il possible de faire un insert et un update en meme temps(dans la meme requete) sur 2 donnees differentes?
selon le SGBD que tu utilise tu peut faire ca dans une procedure stockée...
sinon ca depend ce que tu veut faire : tu peut par exemple mettre une contrainte CHECK dans la creation de ta table.
explique mieux ce que tu veut faire ca sera plus simple
J ai une 1er table EMP(Nom, prenom, Sexe)
qui contient l'enregistrement suivant
Dupond JJ M
Une 2e table EMP_More_Info(Nom, prenom, Sexe)
qui contient 2 enregistrements:
Dupondddd JJ M
Durand JP M
Je souhiaterais, DANS LA MEME REQUETE, Modifier dans la table EMP le 1er enregistrement afin d'obtenir Dupondddd et non Dupond et de rajouter le 2e enregistrement de la table EMP_More_Info a la table EMP qui n'existe pas dans cette derniere
J'espere avoir ete assez claire
Merci
Impossible avec une simple instruction SQL. Par contre, comme dit pilomption, il y a moyen de le faire (en fonction du SGBD) en une seule instruction avec proc, trigger ou en placant une contrainte mais je ne suis pas sûr que c'est ce que tu recherches.
Autre idée : Si c'est le fait que ces deux modif se fassent ensemble et non pas prendre le risque, en cas de problème, que seule une des deux mises à jour ai lieu, place les au sein d'une transation.
je pense que ca doit etre plus simple que ca mais comment fait on avec la transaction?
Begin transaction
insert ...
update ...
commit
Syntax à vérifier en fonction du SGBD
Rajouter éventuellement une gestion des erreurs
ben si tu veut tu peut faire en PHP/MySQL par exemple :
mysql_query("INSERT...;UPDATE...");
il y aura 2 requetes mais qu'une seule ligne
PS : ca reste a verifié quand meme !
Si : la commande MERGE sous ORACLE fait exactement cela, mais j'ignore quels autres moteurs l'implémantent ou si c'est une syntaxe normée...Envoyé par dbafranck
Effectivement, l'instruction merge sous Oracle à partir de la 9i permet de faire un update si la ligne existe et un insert si elle n'existe pas.
Dans l'exemple donné, il faudrait que la clé primaire porte sur une colonne différente de celle à mettre à jour afin de pouvoir faire la jointure. Or, des colonnes sexe ou prénom ne sont pas de bons condidats. A voir si dans le modèle réelle, une vrai clé existe ou peut être rajoutée.
Partager