[ 서버 & DB 관련 ]/MySQL

mysql 오류 Incorrect integer value: '' for column

BIZLAB 2021. 5. 10. 17:55

1366 : Incorrect integer value: '' for column 'gr_use_access' at row 1

error file :adm/boardgroup_form_update.php

위의 예시처럼 1366 오류는 필드에 들어가 data type이 맞지 않을 때 생기는 오류다. 정수형 타입에 null이나 문자형이 입력 될 때 주로 발생한다.

해결을 위해서 root 권한을 이용해 mysql에 로그인 한다.

 

STRICT_TRANS_TABLES 옵션 제거

 

 

아래 명령을 이용하면

mysql> select @@global.sql_mode;

+----------------------------------------------------------------------------------------------------------------+

| @@global.sql_mode |

+----------------------------------------------------------------------------------------------------------------+

| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |

+----------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

sql_mode 옵션을 확인 할 수 있다.

옵션 중에 굵은 STRICT_TRANS_TABLES를 제거해 주면 된다.

mysql> set @@global.sql_mode = 'ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

Query OK, 0 rows affected, 1 warning (0.00 sec)

​=> 영구 변경 안됨

my.cnf 또는 my.ini 설정 파일에서 수정

sql_mode 또는 sql-mode

 

sql_mode="ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

 

위의 부분이 주석처리 되어 있으면 #를 제거하고 옵션을 바꿔준다.

그리고 mysqld 데몬을 다시 실행한다.

#service mysqld restart

[출처] Incorrect integer value: '' for column '컬럼 이름' at row 1 오류 났을 때|작성자 쌈닭