제목 | mysql 자동으로 timestamp 등록 sql | ||
---|---|---|---|
글쓴이 | 한대승(불의회상) | 작성시각 | 2012/05/31 16:49:12 |
|
|||
보통 날짜를 datetime 형식으로 사용 합니다.
mysql 에서는 timestamp 형식의 경우 자동으로 날짜를 집어 넣어 주는 기능이 있는데 사용 하려면 가물거려서 사용하지 않게 되죠. 아래 한 문장이면 간단하게 해결 됩니다. 자동으로 날짜를 집어넣을 수 있는 컬럼은 하나뿐 이라는거... 잊지마세요. ALTER TABLE `테이블명` CHANGE `컬럼명` `컬럼명` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; |
|||
다음글 | 세그멘트랑 쿼리스트링이랑 혼합해서 쓰기 (2) | ||
이전글 | form validation 에서 한글 체크 규칙 (4) | ||
땅그지..
/
2012/06/25 16:38:33 /
추천
0
|
변종원(웅파)
/
2012/06/25 17:25:38 /
추천
0
땅그지../ 위 팁은 timestamp 형식에 관한 내용입니다. 보통 datetime 형태로 많이 쓰는데 그때는 말씀하신 것처럼 now() 쓰시면 됩니다. 세계 어디서 접속해도 동일한 시간을 표시하게 하려면 timestamp 값을 써야합니다. 국내용 사이트 제작시에는 now() 만 써도 됩니다.
|
땅그지..
/
2012/07/03 12:40:33 /
추천
0
웅파/ timestamp 형식에도 NOW() 가 먹힙니다. 물론 timestamp 형식으로 입력 되며 이것은 sysdate 값과는 무관하게 입력 됩니다.
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_now 참조 입니다. 그리고 제가 우려한 것은 ALTER TABLE `테이블명` CHANGE `칼럼명` `칼럼명` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; 이렇게 칼럼을 수정하게 되면 update 시에 지정한 칼럼은 수정을 하지 않더라도 자동으로 수정한 타임을 기준으로 값이 변경 된다는 것입니다. 디비에 익숙하신 분들이야 다 아시는 내용이라 조심 하시겠지만 익숙하지 못하신 분들은 해 놓고 어디서 오류가 있는지 내가 잘못 입력한게 있는지 찾느라 시간 많이 잡아 먹을 수 있죠.(제가 초보때 저 설정 해 놓고 엄청 고생 한 경험이 좀 있어서요) 저 설정은 수정일에 대한 필드에만 적용 하도록 하고, 가입일,등록일 등 처음에 한번 입력 되면 바뀌면 안되는 곳에는 적용 하면 안되는 것입니다. 그냥 NOW() 이용하는게 속편합니다. |
변종원(웅파)
/
2012/07/05 13:49:08 /
추천
0
그래서 일반적인 상황에서는 NOW()를 쓰는게 좋다라고 글에 써놨습니다.
뭐가 문제일까요? ^^
|
땅그지..
/
2012/07/13 01:17:29 /
추천
0
뭐... 사용에 주의만 기울인다면 큰 문제는 없겠지만, |
쌈닭
/
2012/07/16 15:47:20 /
추천
0
땅그지/ 저도 비슷한 경험을 ... ㅋㅋ
|
지지고
/
2012/10/02 10:57:08 /
추천
0
전 게을러 그런지 이상하게 쿼리명령어는 어렵네요.
뭣도 모를때 너무 복잡한 쿼리를 봐서 뇌가 쿼리문만 필터해서 입력받나봅니다. ㅎㅎ 수학도 그랬죠... 학교 졸업하고 몇 년후에 아무감정없이 보니 그 때 이해안되던게 이해가되고... 일단은 조금 이해가 되네요... 하나에 시간필드에 최초입력 & 계속 필드값 갱신필한 경우는 통합. 필드1 : 'TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP' 최초입력한 타임스탬프 보존하고 업데이트 필드는 또 다른 곳일 때는 구분. 필드1 : 최초시간필드 : ON UPDATE CURRENT_TIMESTAMP 필드2 : 업데이트용 필드 : DEFAULT CURRENT_TIMESTAMP |
자동으로 넣어 주는 방식(CURRENT_TIMESTAMP)으로 할 경우 데이터 업데이트가 되면 그때 자동으로 timestamp 값도 update 되는 생각지 못한 사태가 벌어 질 수 있거든요.