MySQL MySQL 테이블 생성시 DATETIME 타입에 DEFAULT로 현재 시간 입력하기
페이지 정보
본문
mysql 5.5 버전 이하 에서는 한 테이블당 1개의 컬럼만 CURRENT_TIMESTAMP를 사용 할수 있습니다.
mysql 5.6 부터는 이 제한이 해제 되었습니다.
MySQL 5.6.5 이상일 경우
NOW() 함수가 아닌 CURRENT_TIMESTAMP 함수를 사용해야 합니다.
MySQL 5.6.5 미만일 경우
기본 값으로 현재 시간을 입력하려면 해당 테이블에 트리거(Trigger)를 작성해야 합니다.
CREATE
TABLE
MySQL_Table(
DateInserted DATETIME
)
;
CREATE
TRIGGER MySQL_Table_OnInsert BEFORE INSERT
ON MySQL_Table FOR EACH ROW
SET
NEW.dateInserted = NOW()
;
MySQL 5.7.2 이후
log_timestamps 시스템 변수 추가
이 시스템 변수는 현재 데이타로 사용하는 시간대와 에러로그와 general query log, slow query log 파일의 시간을 다르게 가져가고자 할때 사용합니다.
데이터는 UTC시간대 정보를 기준으로 사용하지만, 로그 파일들은 현재 DB서버가 위치한 로컬의 시간대로 작성되게 하고자 하는 경우 사용이 가능합니다.
이 시스템 변수는 운영중에 변경이 가능하고, 값은 SYSTEM, UTC 둘 중 하나만 선택이 가능합니다.
참고로 log_timestamps 시스템 변수는 mysql_safe 나 TZ 환경 변수를 이용하여 시스템 레벨의 타임존을 설정한 경우에는 동작하지 않고, 인스텐트 레벨로 설정한 경우에만 동작합니다.
참고자료
https://jsonobject.tistory.com/122
http://blog.iotinfra.net/?p=1577
https://mysqldba.tistory.com/279
mysql 5.6 부터는 이 제한이 해제 되었습니다.
MySQL 5.6.5 이상일 경우
NOW() 함수가 아닌 CURRENT_TIMESTAMP 함수를 사용해야 합니다.
MySQL 5.6.5 미만일 경우
기본 값으로 현재 시간을 입력하려면 해당 테이블에 트리거(Trigger)를 작성해야 합니다.
CREATE
TABLE
MySQL_Table(
DateInserted DATETIME
)
;
CREATE
TRIGGER MySQL_Table_OnInsert BEFORE INSERT
ON MySQL_Table FOR EACH ROW
SET
NEW.dateInserted = NOW()
;
MySQL 5.7.2 이후
log_timestamps 시스템 변수 추가
이 시스템 변수는 현재 데이타로 사용하는 시간대와 에러로그와 general query log, slow query log 파일의 시간을 다르게 가져가고자 할때 사용합니다.
데이터는 UTC시간대 정보를 기준으로 사용하지만, 로그 파일들은 현재 DB서버가 위치한 로컬의 시간대로 작성되게 하고자 하는 경우 사용이 가능합니다.
이 시스템 변수는 운영중에 변경이 가능하고, 값은 SYSTEM, UTC 둘 중 하나만 선택이 가능합니다.
참고로 log_timestamps 시스템 변수는 mysql_safe 나 TZ 환경 변수를 이용하여 시스템 레벨의 타임존을 설정한 경우에는 동작하지 않고, 인스텐트 레벨로 설정한 경우에만 동작합니다.
참고자료
https://jsonobject.tistory.com/122
http://blog.iotinfra.net/?p=1577
https://mysqldba.tistory.com/279
댓글목록
등록된 댓글이 없습니다.