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 |