prosource

mysql 타임스탬프 열

probook 2023. 10. 30. 21:04
반응형

mysql 타임스탬프 열

동일한 행의 필드를 수정할 때마다 자동으로 업데이트되는 타임스탬프 열을 MySQL 테이블에 정의할 수 있습니까?이상적으로 이 열은 행을 삽입한 시간으로 처음 설정해야 합니다.

건배, 돈

타임스탬프 열은 다른 포스터와 같이 사용할 수 있습니다.다음은 열을 추가하는 데 사용할 수 있는 SQL입니다.

ALTER TABLE `table1` ADD `lastUpdated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ;

여기에 현재 날짜/시간의 기본값이 포함된 'lastUpdate' 열이 추가됩니다.해당 레코드가 업데이트되면(5분 후라고 하자) 타임스탬프가 자동으로 현재 시간으로 업데이트됩니다.

이것이 타임스탬프 열 유형의 기본 기능입니다.그러나 이 유형의 형식은 yyyymmddhmmss(모든 숫자, 콜론 또는 기타 구분 없음)입니다.

편집: 형식에 대한 위의 설명은 MySQL < 4.1... 버전에 대해서만 해당됩니다.최신 버전에서는 DateTime과 같이 포맷합니다.

이것이 제가 관찰한 것입니다(MySql 5.7.11) -

테이블의 첫 번째 타임스탬프 열은 현재 타임스탬프를 기본값으로 가져옵니다.따라서 값을 지정하지 않고 INSERT 또는 UPDATE를 수행하면 열에 현재 타임스탬프가 표시됩니다.

후속 TIMESTAMP 열에는 기본값이 명시적으로 정의되어 있어야 합니다.두 개의 타임스탬프 열이 있고 두 번째 열에 대한 기본값을 지정하지 않으면 테이블을 만드는 동안 이 오류가 발생합니다.

오류 1067 (42000):'COLUMN_NAME'의 기본값이 잘못되었습니다.

MySQL 타임스탬프는 기본값이 그대로 설정된 경우에만 생성 또는 업데이트 시간으로 설정됩니다.ALTER TABLE some_table ADD when TIMESTAMP DEFAULT CURRENT_TIMESTAMP.
그렇지 않으면 DateTime 필드처럼 작동하지만 UTC 1970/01에 상대적이기 때문에 DateTime처럼 특정 시간대에 의존하지 않는 절대적인 시점입니다.

언급URL : https://stackoverflow.com/questions/155054/mysql-timestamp-column

반응형