MYSQL

MySQL5.7 버전 업 후 Insert 시 @ 날짜 필드 Incorrect date value: '0000-00-00' for column 에러


MySQL5.7 버전 업 후 Insert 시 @ 날짜 필드 Incorrect date value: '0000-00-00' for column 에러


  2021-10-09  316 View 공개

이미 존재하는 프로젝트를 Mysql 5.7 이전 버전에서 5.7로 업그레이드 후 Data 를 밀어 넣고 프로젝트를 올리면

보통 데이터 삽입 로직에서 에러를 맞게 된다.

이는 대부분, '등록일' 필드와 '수정일' 필드 중 '수정일' 필드가 공백으로 insert query상 작성되어 아래와 같은 에러를 맞게 되는 것.

Error Number: 1292 Incorrect date value: '0000-00-00' for column 't_updated_at' at row 1 INSERT INTO `task_tb` (`t_title`, `t_content`, `t_created_at`, `t_updated_at`) VALUES ('전화하기', '마눌님께 전화하기', '2020-01-11 11:11:11', '0000-00-00 00:00:00')

기존 버전에서 Insert 잘 되던 소스인데 갑자기 잘못된 날짜 값이라며 에러를 낸다.

이 때 대처법. 아래 문서를 참조하였다.

조치 내용.

mysql -u root -p > 루트 암호 입력 ## 현재 설정값 확인 mysql> SELECT @@GLOBAL.sql_mode; mysql> SELECT @@SESSION.sql_mode;

둘 다 아래와 같은 설정값이 들어 가 있다.

+-------------------------------------------------------------------------------------------------------------------------------------------+ | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | +-------------------------------------------------------------------------------------------------------------------------------------------+

이 중 NO_ZERO_DATE 가 이를 막아 에러를 낸 것. MySQL5.3쪽에서 이를 확인 해 보면 그저 공백이다.

MySQL5.7부터는 유효성 검사를 더욱 철저히 하여 예기치 않은 오류를 막자는 취지이나

기존 프로젝트가 갑자기 돌아가지 않는 상황에서는 강화 정책을 이 전 버전과 맞추어 해결함이 나은 듯.

물론 주어진 시간과 여유가 주어진다면 이 제약조건에서도 문제 없는 소프트웨어를 만드는 것이 더 이상적이다.

mysql> set GLOBAL sql_mode = ''; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> set SESSION sql_mode = ''; Query OK, 0 rows affected, 1 warning (0.00 sec)

두번째 쿼리는 현재 커넥션 된 지금 콘솔 세션에서의 sql_mode를 지워주는 거라서 안해줘도 된다.

첫번째 글로벌 설정만 변경 후 exit 후 재접속 해서 확인 해 봐도 아래와 같이 변경 되어있다.

mysql> select @@sql_mode; +------------+ | @@sql_mode | +------------+ | | +------------+ 1 row in set (0.00 sec)

즉, 첫번째 GLOBAL sql_mode 쿼리는 꼭 수행 해야 함.

Global_mode 는 변경 해 주지 않고, 두번째 쿼리만 수행하면 exit 후 재 접속시 원래대로 돌아와 있고

웹 프로세스상 커넥션도 기존대로 유지되므로 위 문제는 해결 되지 않는다.


Tags  #MySql  



🚩 MYSQL 글 모음 (총 37 건)

[macOS] zsh: command not found: mysql 해결 방법

Last Updated : 2023-09-29
#MySql

Mysql DB생성 및 유저등록

Last Updated : 2023-09-29
#Mysql

Mysql 백업 및 복구

Last Updated : 2023-09-29
#MySql

MySql - POD 예제

Last Updated : 2023-09-29
#MySql

데이터베이스에서 작은따옴표(')를 다루는 방법 : SQL 인젝션 예방과 데이터 출력

Last Updated : 2023-09-29
#Mysql

[mySQL] 특정 레코드가 몇 번째인지 알아내는 방법

Last Updated : 2023-09-10
#mySQL #row_number