Programming/에러노트
[MySQL] timestamp의 default값이 등록되지 않을 때
개발도비
2022. 6. 16. 20:24
create table tbl_article (
article_no int not null auto_increment primary key,
title varchar(200) not null,
content text null,
writer varchar(50) not null,
regdate timestamp default now(),
viewcnt int default 0
);
게시글 등록할 때의 시간이 자동으로 등록되도록 timestamp의 default now()를 이용하여 쿼리를 작성했는데 자꾸 null값만 생성되는 오류사항이 있었다. 문제는 DB툴에서 직접 데이터를 넣어주면 regdate가 잘 들어가는데 서버를 실행하여 직접 게시글을 작성하거나 테스트코드를 돌리면 계속 널값이 들어간다는 것.
<insert id="create">
INSERT INTO tbl_article (
article_no
, title
, content
, writer
, regdate
, viewcnt
) VALUES (
#{articleNo}
, #{title}
, #{content}
, #{writer}
, #{regDate}
, #{viewCnt}
)
</insert>
원인은 insert 쿼리문에 있었다.
default는 아무 값도 주지 않을 때를 의미하는 것인데 null값을 줘버리니까 db에 그렇게 들어간 것이다
따라서 위 쿼리에서 regdate와 #{regDate} 부분을 아예 지워버려야 한다.