Maison >base de données >tutoriel mysql >MySQL préserve-t-il l'environnement dans lequel les procédures stockées sont créées ?
En fait, MySQL conserve l'environnement lors de la création de la procédure stockée. Cela peut être compris à travers l'exemple suivant où nous utilisons deux barres pour concaténer des chaînes. Ceci n'est légal que lorsque le mode SQL est ansi. Cependant, si nous changeons le mode SQL en non-ansi, le processus fonctionne toujours comme si le paramètre d'origine était toujours vrai.
mysql> Set sql_mode = 'ansi'// Query OK, 0 rows affected, 1 warning (0.14 sec) mysql> Create Procedure Con_string() -> SELECT 'a'||'b'// Query OK, 0 rows affected (0.12 sec) mysql> Call Con_string (); +----------+ | 'a'||'b' | +----------+ | ab | +----------+ 1 row in set (0.05 sec) Query OK, 0 rows affected (0.05 sec) mysql> Set sql_mode = ''; Query OK, 0 rows affected (0.00 sec) mysql> Call Con_string(); +----------+ | 'a'||'b' | +----------+ | ab | +----------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec)
Le résultat défini ci-dessus montre que même après avoir changé le mode SQL en non-ansi, la procédure Con_string() produit toujours les mêmes résultats que si le mode SQL était toujours ansi. Mais le nouveau programme n'acceptera pas les deux barres car nous avons changé le mode SQL en non-ansi.
mysql> create procedure Con_string1() -> Select 'a'||'b'// Query OK, 0 rows affected (0.02 sec) mysql> Call Con_string1()// +----------+ | 'a'||'b' | +----------+ | 0 | +----------+ 1 row in set (0.00 sec) Query OK, 0 rows affected, 2 warnings (0.00 sec)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!