sql >> Databasteknik >  >> RDS >> Mysql

MySQL lokala variabler

MySQL har två olika typer av variabler:

  • lokala variabler (som inte är prefixet av @ ) är starkt skrivna och omfångade till det lagrade programblocket där de deklareras. Observera att, som dokumenterats under DECLARE Syntax :

  • användarvariabler (som är prefixet av @ ) är löst skrivna och omfångade till sessionen. Observera att de varken behöver eller kan deklareras – använd dem bara direkt.

Därför, om du definierar ett lagrat program och faktiskt vill ha en "lokal variabel", enligt formuleringen i din fråga, måste du släppa @ tecken och se till att din DECLARE uttalandet är i början av ditt programblock. Annars, för att använda en "användarvariabel", släpp DECLARE uttalande.

Dessutom måste du antingen omge din fråga inom parentes för att köra den som en underfråga:

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

Annars kan du använda SELECT ... INTO :

SELECT COUNT(*) INTO @countTotal FROM nGrams;


  1. LINQ till SQL Take w/o Skip Orsakar flera SQL-satser

  2. Mysql InnoDB fel 32 på Windows

  3. Hur man använder array_agg() för varchar[]

  4. heroku, postgreSQL, django, comments, tastypie:Ingen operator matchar givna namn och argumenttyp(er). Du kan behöva lägga till explicita casts