Mysql
 sql >> Base de données >  >> RDS >> Mysql

Variables locales MySQL

MySQL a deux types de variables différents :

  • variables locales (qui ne sont pas préfixé par @ ) sont fortement typés et limités au bloc de programme stocké dans lequel ils sont déclarés. Notez que, comme documenté sous DECLARE Syntaxe :

  • variables utilisateur (qui sont préfixé par @ ) sont faiblement typés et limités à la session. Notez qu'ils ne doivent ni ne peuvent être déclarés - utilisez-les simplement directement.

Par conséquent, si vous définissez un programme stocké et que vous voulez réellement une "variable locale", selon le libellé de votre question, vous devrez supprimer le @ caractère et assurez-vous que votre DECLARE L'instruction se trouve au début de votre bloc de programme. Sinon, pour utiliser une "variable utilisateur", déposez le DECLARE déclaration.

De plus, vous devrez soit mettre votre requête entre parenthèses pour l'exécuter en tant que sous-requête :

SET @countTotal = (SELECT COUNT(*) FROM nGrams);

Sinon, vous pouvez utiliser SELECT ... INTO :

SELECT COUNT(*) INTO @countTotal FROM nGrams;