@v是用户自定义的变量set @a="1"
@@是mysql系统变量select @@version_comment, @@global.xxxx, @@session.xxxx, @@local.xxxx;
tidb解析系统变量的代码在parser/parser.go里v := strings.ToLower(yyS[yypt-2].ident)
var isGlobal bool
if strings.HasPrefix(v, "@@global.") {
isGlobal = true
v = strings.TrimPrefix(v, "@@global.")
} else if strings.HasPrefix(v, "@@session.") {
v = strings.TrimPrefix(v, "@@session.")
} else if strings.HasPrefix(v, "@@local.") {
v = strings.TrimPrefix(v, "@@local.")
} else if strings.HasPrefix(v, "@@") {
v = strings.TrimPrefix(v, "@@")
}
parser.yyVAL.item = &ast.VariableAssignment{Name: v, Value: yyS[yypt-0].expr, IsGlobal: isGlobal, IsSystem: true}
@@version__commentServer version: 5.7.30-0ubuntu0.18.04.1 (Ubuntu)
参考资料: