mysql 0000-00-00 00:00:00 관련 궁금한 사항 질문드립니다.
본문
mysql 5.7 서버 사용 중입니다.
그누보드5 소스 보면 날짜시간 기본값에 아래처럼 날짜시간이나 날짜 기본값으로 0 .... 으로 들어간 값을 사용하는데도 설치가 잘 됩니다.
`mb_datetime` datetime NOT NULL default '0000-00-00 00:00:00'
...
`mb_open_date` date NOT NULL default '0000-00-00',
그런데,
그누보드 설치 후 특정 테이블을 생성 위해 위 코드를 복사해 컬럼명만 다른 코드를 사용해 테이블 생성하려면 지원 안 되는 기본값 타입이라며 에러 나더라구요. 아래 명령어를 실행 후 다시 생성명령어 입력하면 정상적으로 테이블이 생성됩니다.
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_IN_DATE',''));
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_DATE',''));
왜 그누보드5 설치 시엔 잘 되었던 걸까요?
답변 2
다음 링크가 도움이 될지 모르겠습니다.
https://github.com/gnuboard/gnuboard5/blob/master/install/install_db.php#L84
https://github.com/gnuboard/gnuboard5/blob/master/common.php#L172
mysql, 마리아 DB 만 저런 이상한 날짜 허용되는데 mysql 8.0 에서 고쳤죠.
원래는 없는 날짜는 null 로 하면 편한데 호환성때문에 못고치나봐요
mysql, 마리아 DB 도 구버전때문에 이상한 날짜 호환되는 모드 있고요.