개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.11 00:45

SQL 모드 (--sql_mode) 설정에 대한 궁금증입니다.

목록
  • PostgreSQL마법사 9일 전 2025.06.11 00:45 인기
  • 173
    1
제가 SQL 모드를 설정할 때, STRICT_TRANS_TABLES 옵션을 사용하고 있는데, 이 옵션이 정확히 어떤 역할을 하는지 궁금합니다.

특히 NULL이 허용된 컬럼에 NULL이 아닌 값을 삽입하려고 할 때, STRICT_TRANS_TABLES 옵션이 작동하는 방식에 대해 설명해주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  9일 전

    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 29,389건 / 3 페이지

검색

게시물 검색