Maison > base de données > tutoriel mysql > @variable vs variable dans MySQL : quelle est la différence ?

@variable vs variable dans MySQL : quelle est la différence ?

Barbara Streisand
Libérer: 2025-01-21 13:52:11
original
215 Les gens l'ont consulté

@variable vs. variable in MySQL: What's the Difference?

Comparaison des types de variables MySQL : @variable et variable

MySQL fournit deux types de variables : les variables définies par l'utilisateur et les variables définies par l'utilisateur au niveau de la session. Ce dernier commence par le symbole @ (@variable), alors que le premier ne le fait pas (variable).

Variables définies par l'utilisateur

Ces variables sont mal typées et conservent leur valeur tout au long de la session. Ils sont créés en dehors de toute procédure stockée à l'aide de l'instruction SET. Par exemple :

<code class="language-sql">SET @var = 1;</code>
Copier après la connexion

Variables définies par l'utilisateur au niveau de la session

Contrairement aux variables définies par l'utilisateur, ces variables ne sont visibles que dans la session en cours. Ils sont déclarés dans des procédures stockées et passés en paramètres. Par exemple :

<code class="language-sql">CREATE PROCEDURE prc_test(var INT)
BEGIN
    DECLARE var2 INT;
    SET var2 = 1;
END;</code>
Copier après la connexion

Principales différences

La principale différence entre ces deux types de variables est leur portée et la manière dont elles sont initialisées. Les variables de procédure sont réinitialisées à NULL à chaque fois que la procédure est appelée, tandis que les variables au niveau de la session conservent leurs valeurs lors des appels de procédure. L'extrait de code suivant le démontre :

<code class="language-sql">CREATE PROCEDURE prc_test()
BEGIN
    DECLARE var2 INT DEFAULT 1;
    SET var2 = var2 + 1;
    SET @var2 = @var2 + 1;
END;

SET @var2 = 1;</code>
Copier après la connexion

Exemple de sortie :

var2 @var2
2 2
2 3
2 4

Comme vous pouvez le voir, var2 est réinitialisé à chaque fois, tandis que @var2 accumule les changements de valeur au fil des appels.

Conclusion

Comprendre la différence entre @variable et variable est essentiel pour un développement MySQL efficace. Il vous permet de gérer les variables de manière appropriée en fonction de leur portée et de leur comportement d'initialisation, garantissant ainsi l'efficacité et la précision du code.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal