2012-05-09 19 views
15

@を使用して変数にアクセスする場合とそうでない場合の違いは何ですか?@記号はMySQLのプロシージャで何を意味しますか?

+1

私は、MySQLの男ではないんだけど、私は勉強したいです。私がドキュメントから見る限り、変数はSQL Serverと同じ "@"を持つものとして定義されています。 "@"はエンジンに変数名を知らせるものです。あなたが@のない変数にどうやってアクセスできるかは分かりません。明確にすることはできますか?おそらくコードサンプルを "@"を使用する場所と表示しない場所に表示しますか? http://dev.mysql.com/doc/refman/5.0/en/user-variables.html – David

+0

がすでにスタックオーバーフローCHKに答え、このうちhttp://stackoverflow.com/questions/361747/what-does-the- symbol-do-in-sql –

答えて

11

@user definedセッション可変させます。あなたはそれをSETすることができます前に、それ以外の場合は、(stored procedure中)locally scoped変数になり、あなたはDEFINEにあなたの地元を持っているでしょう。また、あなたがしたい場合(SET GLOBALまたはSET @@globalで)グローバルシステム変数を設定することができます。同様にSET SESSION varまたはSET @@session varまたはSET @@varとのセッションシステム変数。

SETからthe documentationまで:SETは、セッション変数を変更します(そのため、ストアドプロシージャ内のローカルユーザーはDEFINEになります)。あなたは、いくつかのシステム変数を設定した場合は、文の中で最も最近のGLOBALまたはSESSION修飾子が指定された修飾子を持たない変数を次のように使用されます。ここ

より多くの(といくつかの良い例):

+0

ありがとう!上記のコメントと元のOPの質問に私の質問に答えます! +1。 – David

関連する問題