Ok. Donc exemple, actuellement, pour mettre à jour ma table TABLE, j'ai une procédure stockée :
1 2
| PROCEDURE UPDATE
(id INTEGER, id_lot INTEGER, id_branche INTEGER, installe INTEGER, test VARCHAR2, charge VARCHAR2, resultat INTEGER, phase VARCHAR2, etat VARCHAR2, num) |
Et pour l'appeler par ex :
UPDATE(25, 12, 3, 0, '', '', 0, '', '', 549)
Dedans, j'ai la disjonction de cas pour savoir si je dois insérer ou mettre à jour, en fonction que l'id vaut -1 ou pas.
Le problème d'une procédure pour mettre à jour, c'est que par exemple pour mettre à jour uniquement id_lot, je dois fournir tous les autres obligatoirement...
Ce que je voudrais :
UPDATE TABLE SET id_lot = 12 WHERE ID = 25
Ou dans le cas ou l'enregistrement n'existe pas :
UPDATE TABLE SET id_lot = 12 WHERE ID = -1
Dans ce deuxième cas, une insertion dans la table TABLE est effectué, en lui mettant le id_lot à 12.
Ce genre de solution ferait surement appel à un trigger sur la table TABLE avec un ON BEFORE UPDATE ?
Bien sur, je ne pense pas qu'une solution comme cela soit possible, mais je voudrais savoir si une méthode s'en rapproche dans l'idée.
Parenthèse : Ok, merci beaucoup pour cette précision... j'avais pas du tout compris cela, je l'utilisais sans avoir vraiment cherché le fonctionnement derrière. Je comprends que la table DUAL n'a rien à voir maintenant...
Partager