미니옵빠의 code stubs
MySQL 12 - 기타 : Set 명령문 본문
SET
SET [GLOBAL | SESSION] sql_variabl=expression, [[GLOBAL | SESSION]
sql_variable=expression...]
MySQL 서버와 클라이언트에서 사용되는 다양한 옵션을 세팅한다. 다음과 같은 값들을 세팅할 수
있다.
CHARACTER SET charcater_set_name | DEFAULT
모든 문자열에 대해 매핑할 문자셋을 지정한다. Source 버전의 MySQL 에 있는 sql/convert.cc
파일을 수정하여 원하는 문자셋을 추가할 수 있다.
PASSWORD = PASSWORD ('some password')
현재 사용자의 비밀번호를 설정한다.
PASSWORD FOR user = PASSWORD ('some password')
임의의 사용자의 비밀번호를 설정한다. 다음 두 문장은 같은 의미를 지닌다.
mysql> SET PASSWORD FOR bob@"%.loc.gov" = PASSWORD("newpass");
mysql> UPDATE mysql.user SET password=PASSWORD("newpass")
WHERE user='bob' AND host="%.loc.gov";
SQL_AUTO_IS_NULL = 0 | 1
1 로 설정하면 WHERE IS NULL 조건으로 SELECT 문을
실행했을 때 저장된 로우를 추출한다. 기본값은 1 이다.
AUTOCOMMIT = 0 | 1
1 로 설정하면 auto commit 모드가 된다. auto commit 모드가 되면 매 SQL 실행시마다 실행 결과
가 데이터베이스에 반영된다. 트랜잭션 기능을 사용할 때는 0 으로 설정하도록 한다.
BIG_TABLES = 0 | 1
예전 명칭은 SQL_BIG_TABLES 이다. 1 로 설정되면 모든 임시 테이블을 디스크가 아니라 메모리
에 저장된다. 이렇게 하면 속도는 다소 느려지겠지만 테이블이 용량을 초과하여 에러가 발생하는
경우는 발생하지 않을 것이다. 기본값은 1 이다.
SQL_BIG_SELECTS = 0 | 1
0 으로 설정되면 MySQL 은 시간이 오래 걸릴 것 같은 SELECT 문에 대해서는 실행을 중지할 것
이다. 기본값은 1 이다.
SQL_BUFFER_RESULT = 0 | 1
SQL_BUFFER_RESULT 는 SELECT 문에 의해 생성된 결과를 임시 테이블에 저장한다. 이것은
테이블의 Lock 을 일찍 풀고자 할 때 도움이 되며, 클라이언트로 결과를 전송하는데 시간이
오래 걸릴 때 도움이 된다.
LOW_PRIORITY_UPDATES = 0 | 1
예전 명칭은 SQL_LOW_PRIORTY_UPDATES 이다. 1 로 설정되면 모든 INSERT, UPDATE,
DELETE 그리고 LOCK TABLE WRITE 는 해당 테이블에 대한 SELECT 문이나
LOCK TABLE READ 가 끝날 때까지 기다린다.
MAX_JOIN_SIZE = value | DEFAULT
예전 명칭은 SQL_MAX_JOIN_SIZE 이다. Join 된 SELECT 문에 대해 value 로 지정한 값까지만
검색을 한다. 이 값을 설정하면 Join 이 잘못 걸려서 SELECT 문이 너무 오랫동안 실행되는 것을
방지할 수 있다.
이 값을 설정하면 SQL_BIG_SELECTS 로 설정된 값은 무시된다. 그러나 다시
SQL_BIG_SELECTS 를 설정하면 다시 MAX_JOIN_SIZE 로 설정된 값이 무시된다.
QUERY_CACHE_TYPE = OFF | ON | DEMAND
QUERY_CACHE_TYPE = 0 | 1 | 2
다음과 같이 쿼리에 대한 캐쉬를 설정한다.
+-----------------+--------------------------------------------------------------------+
| 옵션 | 설명 |
+-----------------+--------------------------------------------------------------------+
| 0 혹은 OFF | 쿼리를 캐쉬하지 않는다.
| 1 혹은 ON | SELECT SQL_NO_CACHE ... 로 실행한 쿼리를 제외한 모든 쿼리의
| | 결과를 캐쉬한다.
| 2 혹은 DEMAND | SELECT SQL_CACHE ... 로 실행한 쿼리만 캐쉬한다.
+-----------------+--------------------------------------------------------------------+
SQL_SAFE_UPDATES = 0 | 1
1 로 설정하면 UPDATE 나 DELETE 실행시 WHERE 조건에 키나 LIMIT 를 사용하지 않은 문장은
실행을 중지한다.
SQL_SELECT_LIMIT = value | DEFAULT
SELECT 문에 의해 생성되는 최대 로우의 개수를 설정한다.
SQL_LOG_OFF = 0 | 1
1 로 설정되면 해당 클라이언트가 슈퍼 유저의 권한을 가지고 있을 때, 해당 클라이언트의 표준
로그를 남기지 않는다. UPDATE 로그하고는 상관없다.
SQL_LOG_UPDATE = 0 | 1
0 으로 설정되면 해당 클라이언트가 슈퍼 유저의 권한을 가지고 있을 때, 해당 클라이언트의
UPDATE 로그를 남기지 않는다. 표준 로그하고는 상관 없다.
SQL_QUOTE_SHOW_CREATE = 0 | 1
1 로 설정하면 SHOW CREATE TABLE 문 실행시 모든 테이블명과 칼럼명을 작은 따움표로
둘러싼다.
TIMESTAMP = timestamp_value | DEFAULT
현재 클라이언트에 대한 시간을 설정한다.
LAST_INSERT_ID = #
LAST_INSERT_ID() 함수에 의해 리턴될 값을 설정한다.
INSERT_ID = #
다음에 실행될 INSERT 문 등에 의해 저장될 AUTO_INCREMENT 값을 설정한다.