
STRICT_TRANS_TABLES 옵션은 MySQL에서 데이터 삽입 시 NULL이 허용된 컬럼에 NULL이 아닌 값을 삽입할 때 발생하는 오류를 방지하는 데 사용됩니다.
NULL이 허용된 컬럼에 NULL이 아닌 값을 삽입하려고 할 때, STRICT_TRANS_TABLES 옵션이 작동하는 방식은 다음과 같습니다.
- STRICT_TRANS_TABLES 옵션이 설정되어 있지 않다면, MySQL은 NULL이 허용된 컬럼에 NULL이 아닌 값을 삽입할 때默認적으로 NULL을 삽입합니다.
- STRICT_TRANS_TABLES 옵션이 설정되어 있다면, MySQL은 NULL이 허용된 컬럼에 NULL이 아닌 값을 삽입할 때 오류를 발생시키고, 데이터 삽입을 중단합니다.
예를 들어, 다음 테이블이 있다고 가정해 보겠습니다.
#hostingforum.kr
sql
CREATE TABLE 테이블명 (
컬럼명1 INT,
컬럼명2 INT NULL
);
이 테이블의 컬럼명2는 NULL이 허용된 컬럼입니다.
이 테이블에 NULL이 아닌 값을 삽입하려고 할 때, STRICT_TRANS_TABLES 옵션이 설정되어 있다면, MySQL은 오류를 발생시키고, 데이터 삽입을 중단합니다.
#hostingforum.kr
sql
SET sql_mode = 'STRICT_TRANS_TABLES';
INSERT INTO 테이블명 (컬럼명1, 컬럼명2) VALUES (1, 2);
이 경우, MySQL은 오류를 발생시키고, 데이터 삽입을 중단합니다.
#hostingforum.kr
sql
ERROR 1048 (230000): Column cannot be null
따라서, STRICT_TRANS_TABLES 옵션은 NULL이 허용된 컬럼에 NULL이 아닌 값을 삽입할 때 발생하는 오류를 방지하는 데 사용됩니다.
2025-06-11 00:46