명령을 내린다 SHOW CREATE TABLE whatever
그런 다음 테이블 정의를보십시오 .
아마 이런 줄이
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
그것에. 명시적인 타임 스탬프 설정이없는 DEFAULT CURRENT_TIMESTAMP
모든 항목 INSERT
은 현재 시간을 사용함을 의미합니다 . 마찬가지로, ON UPDATE CURRENT_TIMESTAMP
명시적인 타임 스탬프가없는 업데이트는 현재 타임 스탬프 값으로 업데이트됨을 의미합니다.
테이블을 생성 할 때이 기본 동작을 제어 할 수 있습니다.
또는 타임 스탬프 열이 처음에 올바르게 생성되지 않은 경우 변경할 수 있습니다.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
이렇게하면 테이블에 대한 INSERT 및 UPDATE 작업이 자동으로 타임 스탬프 열을 업데이트합니다. whatevertable
타임 스탬프를 변경하지 않고 업데이트하려는 경우 , 즉,
다른 열이 변경 될 때 열이 업데이트되지 않도록하려면
그런 다음 이러한 종류의 업데이트를 발행해야합니다.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
이것은 TIMESTAMP
및 DATETIME
열에서 작동합니다 . (MySQL 버전 5.6.5 이전에는 TIMESTAMP
s 에서만 작동했습니다. ) s를 사용할 TIMESTAMP
때 시간대가 고려됩니다. 올바르게 구성된 서버 시스템에서 해당 값은 항상 UTC로 저장되고 검색시 현지 시간으로 변환됩니다.
test
테이블 을 만들고 샘플 데이터를 업데이트 하여 이것을 시도하지 않은 이유는 무엇입니까? 그건 그렇고 업데이트에서timestamp
유형이 지정된 열을 업데이트 하지 않습니다 . 이것이 열 정의에 추가되지 않은 경우ON UPDATE CURRENT_TIMESTAMP