컴퓨터/MySQL
datatime 형식에 not null인데 값이 들어가는 현상
푸우군
2024. 11. 27. 14:51
mysql 8 버전 업그레이드 테스트를 진행하며
slave서버를 한대 생성하였고 master서버와 replication 연결을 하는순간 에러가 뿜뿜 터졌다
문제가 되는 쿼리를 찾아보니
datetime 컬럼에 not null 설정이 되어있는데 null값을 밀어넣으려고하니 에러를 발생시키는 현상이였고
테이블생성문을 확인하니 not null이 분명하였다..!
"여기는 슬레이브니까 마스터에서도 해당 쿼리가 정상적으로 실행되었다는건데 뭐지..?"
그래서 임시 테이블을 생성하고 테스트를 했는데
정.말.들.어.간.다..!
구글링을 통해 원인을 찾을 수 있었고
explicit_defaults_for_timestamp 컬럼의 설정값에 따라
dateitme이나 timestamp 형식의 컬럼에 null처리를 어떻게 하는지 알게되었다.
해당옵션은 아무래도 on으로 넣고 서비스단에서 애초에 이런 쿼리가 들어오지 못하게 하는게 좋을거같다
not null을 뚫어버리는 옵션이라니
조심히써야겠다