|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : avril 2004 Messages : 284 ![]() |
Bonjour,
J'aborde les procédures et fonctions MySQL et j'ai un petit problème : Je souhaite parcourir un champ VARCHAR(20) d'une table et concaténer ce qui est trouvé à une variable puis retourner cette variable : Code :
Code :
Sauriez-vous par ailleurs comment gérer le stockage et renvoi de plusieurs lignes (sur plusieurs occurences d'une table) au sein d'une procédure (j'utilisais %ROWTYPE avec PostgreSQL et un type RECORD pour le renvoi) ? En vous remerciant, C. Tobini |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : avril 2004 Messages : 734 ![]() |
Bonjour,
Je ne m'y connais pas trop en procédure et autre fonctions, mais en gros le message d'erreur signifie que cette création de méthode est considérée comme non déterministe. Il faut comprendre que son résultat pourrait être aléatoire. D'autre part, si les logs binaires sont configurés, il est possible que une requête d'insertion utilisant cette méthode y soit inscrite. Ces logs binaires permettant diverses fonctions d'administration (réplication, sauvegarde,...) il est impératif que ses requêtes aient toujours les même conséquences. C'est le contraire de l'aléatoire de la fonction créée par la requête décrite. Il faut rajouter DETERMINISTIC. Lien vers le manuel
__________________
Pensez au tag
|
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : avril 2004 Messages : 284 ![]() |
Bonjour et merci de la réponse,
Les logs binaires sont effectivement actifs sur ma base. J'ai fixé la variable : SET GLOBAL log_bin_trust_function_creators = 1 dans mysql (la base) pour résoudre ce problème. Je pense également réinjecter mes fonctions qui sont actuellement NOT DETERMINISTIC (par défaut). Bonne journée, C. Tobini |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com