복붙노트

[SQL] 각 행에 대해 MySQL을 자동 저장 날짜

SQL

각 행에 대해 MySQL을 자동 저장 날짜

MySQL을, 나는 내 데이터베이스에 모두 내가 가지고있는 테이블을 (창조를위한 날짜 시간 스탬프하고 마지막으로 각각 수정) dt_created 및 dt_modified 열을 추가 지겹다.

때마다 나는 INSERT 또는 UPDATE 데이터베이스, 나는) (지금을 사용하는 키워드를해야합니다. 이것은 내 지속성을 통해 모든 것입니다.

MySQL은 자동으로 적어도 저장할 수있는 효율적인 대안 삽입 내가 그것을 검색 할 수있는 행의 datatime 있습니까?

해결법

  1. ==============================

    1.당신은 타임 스탬프를 설정하는 DEFAULT 제약 조건을 사용할 수 있습니다 :

    당신은 타임 스탬프를 설정하는 DEFAULT 제약 조건을 사용할 수 있습니다 :

    ALTER TABLE
     MODIFY dt_created datetime DEFAULT CURRENT_TIMESTAMP
    
    ALTER TABLE
     MODIFY dt_modified datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    

    그런 다음 당신은 당신의 INSERT / UPDATE 문에서 () NOW 지정할 필요가 없습니다 것입니다.

    참조 : TIMESTAMP 속성

  2. ==============================

    2.당신은 phpMyAdmin을를 사용하는 경우이 작업을하여 수행 할 수 있습니다

    당신은 phpMyAdmin을를 사용하는 경우이 작업을하여 수행 할 수 있습니다

  3. ==============================

    3.

    ALTER TABLE  `tablename` CHANGE  `dt`  `dt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
    

    올바른 코드해야합니다.

  4. ==============================

    4.글쎄, 당신은 둘 다 가질 수 없습니다 :

    글쎄, 당신은 둘 다 가질 수 없습니다 :

    MySQL의 문서 :

    슬픈, 그렇지?

    그러나 여러분은이 팁 다음) (지금 대신 널 (null)을 사용할 수 있습니다

  5. ==============================

    5.비슷한 질문은 타임 스탬프 필드가 액세스 할 때마다 업데이트됩니다 여기에 "MySQL을위한 타임 스탬프"을 요청했다. 또한 자동으로 트리거가 문제의 테이블에 배치 고려 당신을 위해 해당 필드를 채울 수 있습니다. 환경에 따라 일부 가게 / 기업은 트리거의 사용을 싫어하고있을 수 있으므로 다른 작업 방법을 찾을 수 있습니다.

    비슷한 질문은 타임 스탬프 필드가 액세스 할 때마다 업데이트됩니다 여기에 "MySQL을위한 타임 스탬프"을 요청했다. 또한 자동으로 트리거가 문제의 테이블에 배치 고려 당신을 위해 해당 필드를 채울 수 있습니다. 환경에 따라 일부 가게 / 기업은 트리거의 사용을 싫어하고있을 수 있으므로 다른 작업 방법을 찾을 수 있습니다.

  6. ==============================

    6.phpMyAdmin에 당신은 설정할 수 있습니다

    phpMyAdmin에 당신은 설정할 수 있습니다

    또는 이 쿼리를 사용

    ALTER TABLE  `tablename`
        CHANGE  `dt_created`  `dt_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
    
  7. ==============================

    7.행의 업데이트에 대한 기본 int로서 설정 될 수있다

    행의 업데이트에 대한 기본 int로서 설정 될 수있다

    ALTER TABLE `tablename` CHANGE `dt` `dt` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
    
  8. from https://stackoverflow.com/questions/1932093/mysql-auto-store-datetime-for-each-row by cc-by-sa and MIT license