Nice programing

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

nicepro 2020. 11. 9. 20:59
반응형

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


"ON UPDATE CURRENT_TIMESTAMP"속성이있는 mysql 테이블에 타임 스탬프가 있습니다. 특별한 경우에 타임 스탬프 업데이트를 수동으로 비활성화하는 방법이 있습니까? (예 : 블로그 게시물을 수정하기 위해 항목을 업데이트하지만 다시 업데이트하지는 않음)


특별한 경우에 타임 스탬프 업데이트를 수동으로 비활성화하는 방법이 있습니까? (예 : 블로그 게시물을 수정하기 위해 항목을 업데이트하지만 다시 업데이트하지는 않음)

삽입시에만 열을 채우도록 기본 제약 조건을 구성해야하는 것처럼 들립니다.

DEFAULT CURRENT_TIMESTAMP

이 값으로 만 변경하면 어떤 개정도 업데이트 할 타임 스탬프 값을 트리거하지 않습니다. IE : 어제 블로그 게시물을 작성하고 오늘 오타를 수정 한 경우 열의 날짜는 여전히 어제입니다.


update 명령에서 열 값을 현재 값으로 수동으로 설정할 수 있습니다.

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

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


테이블 / 타임 스탬프를 자동 업데이트하려면 :

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"부분은 필드가 널이 아니기 때문에 기본 시간에 현재 스탬프로 설정합니다. 원하는 경우 not null과 기본값을 모두 제거 할 수 있습니다.


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

레코드를 업데이트하고 싶지만 업데이트하지 않으려면 타임 스탬프를 사용하십시오.

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

업데이트시 timestemp를 변경하는 경우 값이 업데이트되었지만 변경되지 않은 경우 (저장 값이 업데이트 된 경우) "업데이트시 Current_timestemp"가 업데이트되지 않으며이 상황에서 timestemp를 설정해야한다는 점을 고려해야합니다. 수동으로

SET LastUpdatedDate=NOW() WHERE

아이디어는 여기에서 나왔습니다. TIMESTAMP 필드를 업데이트하려면 MYSQL 레코드를 터치 하십시오.

참고 URL : https://stackoverflow.com/questions/2844863/updating-entry-without-updating-timestamp

반응형