2012-05-09 11 views
15

Cuál es la diferencia entre el acceso a una variable con o sin @?¿Qué significa el símbolo @ en un Procedimiento en MySQL?

+1

No estoy MySql chico, pero quiero aprender. Por lo que puedo ver en la documentación, las variables se definen como tener una "@" igual que con SQL Server. El "@" es lo que le dice al motor que es un nombre de variable. No estoy seguro de cómo podría acceder a una variable sin el @. ¿Puedes aclarar? ¿Quizás muestre muestras de código donde usa la "@" y donde no? http://dev.mysql.com/doc/refman/5.0/en/user-variables.html – David

+0

ya respondida en el desbordamiento de la pila, esta es la siguiente http://stackoverflow.com/questions/361747/what-does-the- symbol-do-in-sql –

Respuesta

11

El @ la convierte en una variable deuser definedsesión. De lo contrario, sería locally scoped variable (en un stored procedure), tendría que DEFINE su local antes de poder SET. También podría establecer una variable global variable (con SET GLOBAL o SET @@global) si así lo desea. Además de una sesión sistema variable con SET SESSION var o SET @@session var o SET @@var.

Más detalles sobre SET de the documentation: Si no está presente un modificador, SET cambia la variable de sesión (por eso es que DEFINE sus locales en el procedimiento almacenado en primer lugar). Si establece varias variables del sistema, el más reciente GLOBAL o SESSION modificador en la declaración se utiliza para el seguimiento de variables que no tienen modo especificado.

más (y algunos buenos ejemplos) aquí:

+0

¡Gracias! ¡Eso responde mi pregunta sobre el comentario anterior así como la pregunta original de OP! +1. – David

Cuestiones relacionadas