Souci sur code SQL [Résolu] - SQL/NoSQL - Programmation
Marsh Posté le 28-06-2021 à 16:36:09
Code :
|
$IDDatastoreUpdated contient l'ID du datastore qui vient d'être mis à jour. Ca devrait le faire je pense.
Après, ça dépend des possibilités de ton SGBD. Vu que c'est sur la MAJ d'un datastore, tu pourrais utiliser un trigger pour faire la MAJ ds Directories liés.
Edit : tu devrais avoir sous peu une réponse en mode "pavé" pas forcément très compréhensible de notre nouvel ami djinto. Faut pas t'inquiéter, c'est normal, il est fan des topics de SQL. Il nous remonte même ceux enterrés depuis plusieurs années...
Marsh Posté le 28-06-2021 à 16:55:36
Bonjour Rufo,
Merci pour ton retour, mais du coup j'utilise déjà ce code dans un trigger, et du coup je n'est pas (ou ne connais pas ) de variable qui pourrais justement me donner l'ID du datastore qui à changé...
Mon SGBD est un sqlite3 ^^
Si tu à une autre idée du coup ça m'aiderais beaucoup, sinon je vais voir pour ajouter ce code au niveau de mes requettes en même temps que je change le status
Encore merci,
Cordialement
Marsh Posté le 28-06-2021 à 18:02:50
Tu as forcément l'ID du datastore qui a été mis à jour en paramètre d'entrée de ton trigger.
Sinon, ne fait pas de trigger et traite cette MAJ au niveau du code de ton appli. Là, tu auras forcément l'ID du datastore qui a été mis à jour.
Marsh Posté le 29-06-2021 à 10:32:39
j'ai essayé ce matin, et malheureusement ça ne fonctionne pas, j'ai cette erreur en retour (que ce soit dans un trigger ou dans une simple fenêtre SQL) :
[10:27:01] Erreur pendant l’exécution de la requête sur la base de données « internal » : no such column: Datastore.Id
Pourtant la table Datastore possède bien une colonne Id...
Je comprend pas du coup, je vais voir si je trouve une autre méthode mais je commence vraiment à sentir mes lacunes en SQL, après je suis pas du tout programmateur de base (je suis dans le système/réseaux)
Merci beaucoup ^^
Marsh Posté le 29-06-2021 à 10:39:47
Peut-être que tu peux pas faire de jointure sur une autre table dans une requête de type UPDATE.
Marsh Posté le 29-06-2021 à 10:46:34
Bon, j'ai finalement réussi en reprenant mon code initial et en faisant un (quantième) tour sur la doc.
j'ai remplacer le
Code :
|
Par
Code :
|
et j'ai utiliser les variable de trigger pour retrouver mes Id et Status, du coup ça donne :
Code :
|
Merci rufo pour la piste sur les variables dans les trigger, je pense que j'aurais encore tourné un moment dans le vent XD
Sujet fini, merci encore et bonne continuation
PS : je croit bien qu'il n'est pas possible de faire de jointure sans faire d'embriquement avec des ( ) en sqlite3 pour les UPDATE
Marsh Posté le 29-06-2021 à 11:45:26
Content si tu as trouvé une solution
Mets "[Résolu]" en début du titre de ton topic en éditant le premier message de ton sujet.
Marsh Posté le 28-06-2021 à 14:33:48
Bonjour,
Pour faire simple, j'ai besoin d'aide pour un code en SQL.
Je possède des connaissances assez sommaires sur ce domaine, et je ne parviens pas à avoir le comportement souhaité.
En gros j'ai deux tables : Datastore et Directory, les entrées Directory sont join avec une entrée dans Datastore (un Datastore peut avoir plusieurs Directory).
Je souhaiterais changer le contenus d'une colonne nommé "Status" sur tout les directory liès à un Datastore quand un Datastore est mis à jour.
Actuellement j'ai un code qui marche à moitié, car il ne fait ce changement que sur un seul directory à chaque changement, avez-cous une idée de pourquoi ?
Mon code :
En vous remerciant d'avance,
Cordialement
Message édité par darkwolf3917 le 29-06-2021 à 15:57:29