본문으로 바로가기

MYSQL TIMESTAMP

category IT. 2016. 5. 4. 17:40



MYSQL TIMESTAMP


안녕하세요 ~ 왕발입니다 >_<


이번에 포스팅할 주제는 MYSQL TIMESTAMP 입니다.


처음에 이 포스팅을 하기전에, 기존에 있던 SQL를 사용하려고 했습니다.


그래서 테이블을 그대로 사용하는데, 이상하게 해당 글 조회 시 조회 수가 올라가면서 

자꾸 글 작성일 "createtime" 부분이 업데이트 되는겁니다.


와... 그래서 한 몇 시간을 찾아보려고 고생했는지 모르겠습니다.

하지만, PHP에는 문제가 없었습니다. 결국에는 검색하다보니 알게 된. timestamp 형식이였습니다.


MYSQL에서 timestamp 형식은 자동으로 날짜를 바꿔주는 기능이 있습니다.

즉, MYSQL에서 한번이라도 업데이트를 하게 되면, 자동으로 업데이트 한 시간에 맞춰서 timestamp 형식의 필드에 시간이 자동등록 됩니다.


하지만, 이 부분에는 문제점이 있습니다.

예를 들어 테이블에서 한 필드에서 어떤 값이라도 하나만 변하게 되면 timestamp 형식의 필드는 자동시간등록이 됩니다.


즉, 작성일 이런 부분에는 사용하실때 옵션을 잘 조정해주셔야 합니다.

(유의사항)


[형식 값]

ALTER TABLE `테이블명` CHANGE `컬럼명` `컬럼명` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;


[첨부]

하나에 시간필드에 최초입력 & 계속 필드값 갱신필한 경우는 통합.

필드1 : 'TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP'


최초입력한 타임스탬프 보존하고 업데이트 필드는 또 다른 곳일 때는 구분.

필드1 : 최초시간필드 : ON UPDATE CURRENT_TIMESTAMP

필드2 : 업데이트용 필드 : DEFAULT CURRENT_TIMESTAMP


위와 같은 설정은 수정일에 대한 필드에만 적용 시키는 것이 좋으며, 가입일, 등록일 등 처음에 한번 입력 후에

바뀌면 안되는 곳에는 사용하시면 안됩니다.


[검색 많이 해보니.. 그냥 NOW() 이용 하라는 의견이 많네요 ㅎㅎ]

아무튼.... 처음 알게 된 형식이라서, 어디가 문제인지 찾는데 오래걸렸습니다 ! ㅠㅠ

해결해서 다행입니다. 저와 같은 경험이 있으신분들 많으실거라 생각이 듭니다 :)


감사합니다 ~!!



'IT.' 카테고리의 다른 글

robots.txt 를 알아보자  (0) 2016.05.06
라즈베리파이 카메라 스트리밍 (MJPG-Streamer)  (2) 2016.05.02
라즈베리파이 프로젝트 완성  (29) 2016.05.02