5.1 버전과 그 이전
- MySQL 5.1에서는 한 테이블 내에서
DEFAULT CURRENT_TIMESTAMP
와ON UPDATE CURRENT_TIMESTAMP
속성을 갖는TIMESTAMP
컬럼을 각각 하나씩만 허용합니다.- 위 처럼 한 테이블내에서 시간값에 default 값을 추가해주는 경우 기본값 설정을 할 수 없다는 문구가 발생함.
5.6 이상
- 이후 버전에서는 이러한 제한이 완화되어 두 개 이상의
TIMESTAMP
컬럼에DEFAULT CURRENT_TIMESTAMP
를 사용할 수 있게 되었습니다.
- 여러
TIMESTAMP
컬럼에 대해DEFAULT CURRENT_TIMESTAMP
와ON UPDATE CURRENT_TIMESTAMP
클로즈를 사용할 수 있습니다
이유?
- 당시의 기술적인 제약과 내부 구현의 복잡성 때문이라고함.
- 워낙에 오래전에 나온 DB 버전이기에 이해는 된다..
우회방법
DATETIME
컬럼 사용 + 트리거로 기본값 설정하기- 트리거 사용시 어플리케이션 레벨에서 고려하는 것을 넘어서 DB 영역까지 넘어가서 로직을 고려해야하는 사태가 발생할 것 같음.
- 어플리케이션 레벨에서 기본값을 관리하기 → 채택
Uploaded by N2T
'자바 > 리팩토링' 카테고리의 다른 글
[리팩토링] 장바구니 기능의 경우 SOFT DELETE 와 HARD DELETE 중에 뭘 사용해야할까? (0) | 2023.10.07 |
---|---|
[리팩토링]__**Spring Boot에서 여러 SQL 스크립트 순차적 실행하기**__ (0) | 2023.10.02 |
[리팩토링]Mysql 5.1 에서의 주석의 길이 제한 -_ - (0) | 2023.10.01 |
[리팩토링]DTO 와 VO 분리 및 PERSISTENCE 생성 (0) | 2023.09.24 |
[리팩토링] 쿠키 관리를 서버단에서 들고있다면.. (0) | 2023.09.24 |