sql >> Database teknologi >  >> RDS >> Mysql

MySQL lokale variabler

MySQL har to forskellige typer variable:

  • lokale variabler (som ikke er præfikset med @ ) er stærkt skrevet og scoped til den lagrede programblok, hvori de er erklæret. Bemærk, at som dokumenteret under DECLARE Syntaks :

  • brugervariabler (som er præfikset med @ ) er løst skrevet og scoped til sessionen. Bemærk, at de hverken behøver eller kan deklareres - bare brug dem direkte.

Derfor, hvis du definerer et lagret program og faktisk ønsker en "lokal variabel", i henhold til ordlyden i dit spørgsmål, bliver du nødt til at droppe @ tegn og sørg for, at din DECLARE sætning er i starten af ​​din programblok. Ellers skal du slippe DECLARE for at bruge en "brugervariabel". erklæring.

Desuden skal du enten omgive din forespørgsel i parentes for at udføre den som en underforespørgsel:

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

Ellers kan du bruge SELECT ... INTO :

SELECT COUNT(*) INTO @countTotal FROM nGrams;


  1. InnoDB indsætter meget langsomt og langsommere

  2. Viser tidligere forespørgselslog - MySQL

  3. Joda Time - Hibernate indsætter gårsdagens dato i databasen

  4. MySQL - Tæller i gruppe