본문 바로가기
MYSQL

MYSQL - createdAt now( ) 작성시간, updateAt on update now( )수정시간

by 하니__ 2024. 5. 16.

 

이런 형식으로 테이블을 만들었을때

 

리뷰를 남긴다고 할때

id는 자동으로 기록될것이고

200자 내외로 리뷰내용을 남길수 있고

리뷰를 남길때의 시간이 기록 될것이다

 

그렇다면

 

insert into comment
(content, createdAt)
values
('좋아요', now() );

이런 형식으로 적혀지겠는데

늘 컬럼 이름과 now()를 적을 일 없이

 

디폴트 셋팅을 해두자

 

 

이렇게 작성하지 않으면 기본값에 null대신 now() 로 하고

어플라이를 하면

 

current_timestamp로 바뀌었지만

뜻은 같다라는것을 알고 있다

그래서 이제

아래와 같이 작성하게 되면

insert into comment
(content)
values
('진짜 맛있네요~' );

 

알아서 입력시간이 저장이 되게 됐다

 

다음은 

수정시간

 

insert into comment
(content)
values
('별 5개 입니다' );

 

만약 이렇게 입력하여 별 5개를 주었는데

나중에 마음이 바뀌어 리뷰를 변경 했다고 하자

그럴때 수정된 시간도 기록하는것이 좋지 않을까?

 

유튜브댓글이나 리뷰댓글에서

종종 (수정됨)을 목격 했을것이다

 

그래서 이번에는

updateAt을 만들어주고

디폴트세팅에

now() on update now()라고 적어주자

그러면 또 바뀌어서 저장된다

 

그러면 이제 다시

insert into comment
(content)
values
('별 5개 입니다' );

라고 입력하게 되면

 

처음부터 작성시간과 수정시간이 같이 기록되며

수정을 하게되면

 

update comment
set content = '별 4개 입니다'
where id = 4;

update comment
set content = '별 3개 입니다'
where id = 4;

 

 

 

작성시간은 그대로 유지되고

수정시간이 업데이트 되게 된다