MySQL心得6--MySQL语言结构--常量、变量(三)
例: 将全局系统变量sort_buffer_size的值改为25000。
SET @@global.sort_buffer_size=25000;
注意:如果在使用SET GLOBAL时同时使用了一个只能与SETSESSION同时使用的变量,或者如果在设置一个全局变量时未指定GLOBAL(或@@),则MySQL会产生错误。
www.2cto.com
(3_2).会话系统变量
会话系统变量(session system variable)只适用于当前的会话。大多数会话系统变量的名字和全局系统变量的名字相同。当启动会话的时候,每个会话系统变量都和同名的全局系统变量的值相同。一个会话系统变量的值是可以改变的,但是这个新的值仅适用于正在运行的会话,不适用于所有其他会话。
例: 将当前会话的SQL_WARNINGS变量设置为TRUE。
SET @@SQL_WARNINGS =ON;
说明:这个系统变量表示如果不正确的数据通过一条INSERT语句添加到一个表中,MySQL是否应该返回一条警告。默认情况下,这个变量是关闭的,设为ON表示返回警告。
例: 对于当前会话,把系统变量SQL_SELECT_LIMIT的值设置为10。这个变量决定了SELECT语句的结果集中的最大行数。
SET @@SESSION.SQL_SELECT_LIMIT=10;
SELECT @@LOCAL .SQL_SELECT_LIMIT;
说明:在这个例子中,关键字SESSION放在系统变量的名字前面(SESSION和LOCAL可以通用)。这明确地表示会话系统变量SQL_SELECT_LIMIT和SET语句指定的值保持一致。但是,名为SQL_SELECT_LIMIT的全局系统变量的值仍然不变。同样地,改变了全局系统变量的值,同名的会话系统变量的值保持不变。
(1).如果要将一个系统变量值设置为MySQL默认值,可以使用default关键字。
例: 把SQL_SELECT_LIMIT的值恢复为默认值。
SET @@LOCAL.SQL_SELECT_LIMIT=DEFAULT;
(2).使用SHOWVARIABLES语句可以得到系统变量清单。SHOW GLOBAL VARIABLES返回所有全局系统变量,而SHOW SESSION VARIABLES返回所有会话系统变量。如果不加关键字就默认为SHOWSESSION VARIABLES。 www.2cto.com
例: 得到系统变量清单。 SHOW VARIABLES;
(3)要获得与样式匹配的具体的变量名称或名称清单,需使用LIKE子句,语句如下:
SHOW VARIABLES LIKE 'max_join_size';
SHOW GLOBAL VARIABLES LIKE 'max_join_size';
(4)要得到名称与样式匹配的变量的清单,需使用通配符“%”,例如: SHOW VARIABLESLIKE 'character%';
作者 tianyazaiheruan