MySQL에서 sql_mode를 쿼리하고 설정하는 방법은 무엇입니까? 다음 기사에서는 MySQL의 sql_mode 쿼리 및 설정 방법을 소개합니다.
MySQL의 sql_mode 쿼리 및 설정
1, SQL을 실행하여 보기 [관련 권장 사항: mysql 비디오 튜토리얼]
select @@session.sql_mode;
글로벌 수준: 보기
select @@global.sql_mode;
2, 수정
set @@session.sql_mode='xx_mode'set session sql_mode='xx_mode'
전역 수준: 수정
set global sql_mode='xx_mode';set @@global.sql_mode='xx_mode';
세션은 생략 가능하며 기본 세션은 현재 세션에만 유효합니다.
전역 수정에는 고급 권한이 필요하며 다음 연결에서만 적용되며 현재 세션에는 영향을 미치지 않습니다. MySQL은 재시작 시 구성 파일의 해당 값을 다시 읽기 때문에 영구적이어야 하는 경우 구성 파일의 값을 수정해야 합니다.
vi /etc/my.cnf
[mysqld]sql-mode = "xx_mode"
저장하고 종료하고 서버를 다시 시작하면 영구적으로 적용됩니다.
ONLY_FULL_GROUP_BY
GROUP BY 집계 작업의 경우 SELECT의 열이 그렇지 않은 경우 GROUP BY에 나타나면 이 SQL은 GROUP BY 절에 해당 열이 없기 때문에 잘못된 SQL입니다
NO_AUTO_VALUE_ON_ZERO
이 값은 자동 증가 열의 삽입에 영향을 줍니다. 기본 설정에서 0 또는 NULL을 삽입하면 다음 자동 증가 값이 생성되는 것을 나타냅니다. 이 옵션은 사용자가 0 값을 삽입하려고 하고 열이 자동 증가하는 경우 유용합니다.
STRICT_TRANS_TABLES
이 모드에서는 트랜잭션 테이블에 값을 삽입할 수 없으면 현재 작업이 중단되고 비트랜잭션 테이블에는 제한이 없습니다.
NO_ZERO_IN_DATE
엄격 모드에서는 , 허용되지 않음 날짜 또는 월이 0인 경우 '0000-00-00'
NO_ZERO_DATE
Set을 제외하고는 오류가 보고됩니다. 이 값을 사용하면 mysql 데이터베이스는 0 날짜 삽입을 허용하지 않습니다. 0 날짜를 삽입하면 경고 대신 오류가 발생합니다. 연도, 월, 일 중 0이 아닌 항목이 있으면 '0000-00-00'만 오류가 발생합니다
ERROR_FOR_pISION_BY_ZERO
INSERT 또는 UPDATE 과정에서 데이터가 분할된 경우 0이면 대신 경고가 발생합니다. 모드가 지정되지 않은 경우 데이터를 0으로 나눌 때 MySQL은 NULL을 반환합니다.
업데이트 테이블 세트 num = 5/0은 모드를 설정하지 않은 경우 수정에 성공한 것입니다. is null
NO_AUTO_CREATE_USER
GRANT가 빈 비밀번호로 사용자를 생성하지 못하도록 합니다.
NO_ENGINE_SUBSTITUTION
필요한 스토리지 엔진이 비활성화되거나 컴파일되지 않은 경우 오류가 발생합니다. 이 값이 설정되지 않으면 기본 스토리지 엔진이 대신 사용되며 예외가 발생합니다.
PIPES_AS_CONCAT
는 Oracle 데이터베이스와 동일한 OR 연산자 대신 문자열 연결 연산자로 처리됩니다. 문자열 접합 함수 Concat과도 유사합니다
ANSI_QUOTES
ANSI_QUOTES를 활성화한 후에는 식별자로 해석되므로 큰따옴표를 사용하여 문자열을 인용할 수 없습니다.
더 많은 프로그래밍 관련 지식을 보려면 다음을 방문하세요. 프로그래밍 영상! !
위 내용은 MySQL에서 sql_mode를 쿼리하고 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!