테이블 생성시
datetime컬럼에 기본값으로 now() 적용은 안되고 CURRENT_TIMESTAMP 를 사용해야 함
mysql 5.5 버전 이하 에서는 한 테이블당 1개의 컬럼만 CURRENT_TIMESTAMP를 사용 할수 있다
mysql 5.6 부터는 이 제한이 해제 되었다.
CURRENT_TIMESTAMP 입력시 오류 나는 경우 (CURRENT_TIMESTAMP) 이렇게 괄호 추가
CREATE TABLE table (
date1 datetime DEFAULT CURRENT_TIMESTAMP,
date2 timestamp DEFAULT CURRENT_TIMESTAMP
)
때로는 '0000-00-00 00:00:00' 문자열을 기본값으로 사용하는 경우도 있는데,
이 경우 IDE에서는 <null>로 보이는 경우가 있다.
웹에서 null 체크가 적용되지 않을 경우 이를 확인해 보자.
터
관련해서 -
날짜의 범위가 올바르지 않으면 데이터 insert 자체가 안되는 경우
sql_mode가 STRICT_TRANS_TABLES 일 경우 오류를 토해내고 실행 되지 않는다.
SELECT @@sql_mode;
데이터 업데이트시 날짜를 등록 하게 할 경우
CREATE TABLE `테이블` (
`modified_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
이미 생성된 테이블에 조건을 추가 할 경우
ALTER TABLE 테이블 CHANGE 해당컬럼명 해당컬럼명 TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
해당 컬럼이 비어있다면, 현재 시간이 기본적으로 들어가는데 이유는 모르겠다..
DEFAULT CURRENT_TIMESTAMP NOT NULL 없이 해도 동일함
'[ 서버 & DB 관련 ] > MySQL' 카테고리의 다른 글
mysql workbench 설치 (centos) (0) | 2019.05.10 |
---|---|
mysql 문자열 합치기, 숫자형 문자형 변환 (0) | 2019.05.10 |
mysql FUNCTION, PROCEDURE 예제 (0) | 2019.05.10 |
변수 사용 예 (0) | 2019.05.02 |
mysql 커서 샘플 - Cursor (0) | 2019.04.29 |