programing

타임스탬프를 업데이트하지 않고 항목을 업데이트하는 중

coolbiz 2022. 9. 24. 22:43
반응형

타임스탬프를 업데이트하지 않고 항목을 업데이트하는 중

mysql 테이블에 "ON UPDATE CURRENT_TIMESTamp" 속성이 있는 타임스탬프가 있습니다. 특별한 경우 타임스탬프 업데이트를 수동으로 비활성화하는 방법이 있습니까?(예: 블로그 투고를 수정하기 위해 엔트리를 갱신하지만 날짜를 갱신하지 않음)

update 명령어로 컬럼 값을 수동으로 현재 값으로 설정할 수 있습니다.

UPDATE table SET x=y, timestampColumn=timestampColumn WHERE a=b;

쿼리에서 값을 설정하지 않으면 테이블 정의에 따라 현재 타임스탬프로 업데이트됩니다.

특별한 경우에 타임스탬프 업데이트를 수동으로 비활성화하는 방법이 있습니까?(예: 블로그 투고를 수정하기 위해 엔트리를 갱신하지만 날짜를 갱신하지 않음)

삽입 시에만 열을 채우도록 기본 제약 조건을 구성해야 할 것 같습니다.

DEFAULT CURRENT_TIMESTAMP

이 값만 변경해도 타임스탬프 값이 업데이트되지 않습니다.IE: 어제 블로그 포스트를 만들고 오늘 오타를 수정한 경우 - 컬럼의 날짜는 어제 날짜입니다.

테이블/타임 스탬프를 자동 갱신하려면:

ALTER TABLE myTable
CHANGE myTimestampColumn
        myTimestampColumn TIMESTAMP NOT NULL
                       DEFAULT CURRENT_TIMESTAMP 
                       ON UPDATE CURRENT_TIMESTAMP;

자동 업데이트를 하지 않으려면:

ALTER TABLE myTable
CHANGE myTimestampColumn
        myTimestampColumn TIMESTAMP NOT NULL
                       DEFAULT CURRENT_TIMESTAMP;

메모: "default current_timestamp" 부분은 필드가 null이 아니기 때문에 기본 시간에 현재 스탬프로 설정합니다.필요에 따라 null이 아닌 것과 기본값을 모두 제거할 수 있습니다.

타임스탬프를 사용하지 말고 수동으로 시간을 추적하십시오.

레코드를 업데이트하고 타임스탬프를 업데이트하지 않으려면 다음을 사용합니다.

UPDATE `table` SET `timestamp` = `timestamp`, `col` = 'new data' …;

업데이트 시 timemp를 변경할 경우 값이 업데이트되었지만 변경되지 않은 경우(저장 값 업데이트) "on update Current_timestemp"가 업데이트되지 않음을 고려해야 합니다.이 상황에서는 수동으로 timemp를 설정해야 합니다.

SET LastUpdatedDate=NOW() WHERE

아이디어는 여기서 나왔습니다.MYSQL 레코드를 터치하여 TIMESTAMP 필드를 업데이트합니다.

언급URL : https://stackoverflow.com/questions/2844863/updating-entry-without-updating-timestamp

반응형