나는 MySQL 5.x (PHP 포함)에서 타임 스탬프를 사용하여 이벤트 시간을 기억합니다. 개발하는 동안 나는 모든 컬럼에서 뭔가를 변경하는 쿼리로 테이블을 업데이트해야했습니다. 타임 스탬프는 현재 시간으로 리셋되었습니다.MySQL 타임 스탬프 만 생성시
업데이트시 교체가 아닌 삽입시에만 타임 스탬프를 변경할 수 있습니까?
나는 MySQL 5.x (PHP 포함)에서 타임 스탬프를 사용하여 이벤트 시간을 기억합니다. 개발하는 동안 나는 모든 컬럼에서 뭔가를 변경하는 쿼리로 테이블을 업데이트해야했습니다. 타임 스탬프는 현재 시간으로 리셋되었습니다.MySQL 타임 스탬프 만 생성시
업데이트시 교체가 아닌 삽입시에만 타임 스탬프를 변경할 수 있습니까?
Here's all you need to know. 즉,하지만 난이 그것을해야한다고 생각 : 여기 for time-stamp
ALTER TABLE `mytable`
CHANGE `mydatefield` `mydatefield`
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
감사합니다. 여기서 "NULL이 아닌"부분은 필요하지 않습니다. –
해당 필드에 default value을 사용할 수 있으며 삽입 또는 업데이트 쿼리에 포함하지 마십시오.
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
아주 좋은 문서.
뭔가 빠져있을 수 있지만 내 테이블이 이런 식으로 정의되어 있지만 여전히 날짜가 변경되었습니다. mysql 설명에서 : 'pur_time', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', ' – Nir
해당 열에 대해 DATETIME을 사용하는 것이 좋습니다. 레코드가 업데이트되면 변경되지 않습니다.
나를 위해, 나는 그것을 사용하지 않는 것이 일반적이지만 레코드가 마지막으로 터치되었을 때를 추적하기 위해 TIMESTAMP를 사용한다.
Google에 다음과 같은 사람들을위한 늦은 답변 : 데이터베이스에서 수동 편집을 수행 할 때 TIMESTAMP를 사용하는 경우. 또는 TIMESTAMP 컬럼이 여러 개인 경우 모든 컬럼을 터치하고 싶지 않은 경우; MySQL 매뉴얼은 컬럼을 자신에게 할당한다고 말한다. 명시 적으로 현재 값 (예 : "updated_on = updated_on")으로 열을 설정하므로 UPDATE에 의해 변경되지 않습니다. –