11

このページの MySQL ドキュメントを読んでいます: http://dev.mysql.com/doc/refman/5.1/en/set-statement.html

「@@」をよく使用しますが、「@@」の意味を定義していません。

別の例は、変数名にあります。

mysql> select @@hostname;
+------------+
| @@hostname |
+------------+
| server1    |
+------------+
1 row in set (0.00 sec)

mysql> select @hostname;
+-----------+
| @hostname |
+-----------+
| NULL      |
+-----------+
1 row in set (0.00 sec)

@ 対 @@ とは何ですか?

4

3 に答える 3

8

システム変数の使用:

変数がセッション変数であることを明示的に示すには、その名前の前に SESSION、@@session.、または @@ を付けます。

ユーザー定義変数:

ユーザー変数は @var_name として記述されます。ここで、変数名 var_name は、英数字、「.」、「_」、および「$」で構成されます。ユーザー変数名を文字列または識別子として引用する場合、ユーザー変数名に他の文字を含めることができます (たとえば、 @'my-var'、@"my-var"、または @ my-var)。

于 2013-04-12T01:12:23.757 に答える
2

同じドキュメントから&システム変数ドキュメントを使用して-

変数がグローバル変数であることを明示的に示すには、その名前の前に GLOBAL または @@global. を付けます。グローバル変数を設定するには、SUPER 権限が必要です。

変数がセッション変数であることを明示的に示すには、その名前の前に SESSION、@@session.、または @@ を付けます。セッション変数の設定に特別な権限は必要ありませんが、クライアントは自身のセッション変数のみを変更でき、他のクライアントの変数は変更できません。

LOCAL と @@local。SESSION および @@session の同義語です。

システム変数の @@var_name 構文は、他のデータベース システムとの互換性のためにサポートされています。

于 2013-04-12T01:15:17.543 に答える