본문 바로가기

기록/SQL

[MySQL] ALTER TABLE로 date 타입 defualt 설정하기

SMALL

오라클에서 DEFAULT로 현재 시간을 설정하기 위해서는 SYSDATE 를 사용한다.

MYSQL 에서는 SYSDATE 대신 NOW() 함수를 사용한다.

 

NOW()를 사용했을 때 오류가 발생해서 찾아본 결과, MYSQL의 버전에 따라 사용하는 구문이 다르다. 

 

1. mysql 버전 확인하기

 

cmd창을 열고 mysql --version을 입력하면 현재 버전을 알 수 있다.

내 버전은 mysql 5.7.35였다.

 


해결

MYSQL의 버전이 5.6.5 이상일 경우에 사용하는 방법이다.

NOW()함수 대신 CURRENT_TIMESTAMP를 사용한다.

 

ALTER TABLE [테이블명] MODIFY COLUMN [컬럼명] DATETIME DEFAULT CURRENT_TIMESTAMP;

 

 

만일 MYSQL의 버전이 5.6.5보다 아래일 경우에는 구글링하다 찾은 아래 글을 참고하면 좋을 듯 하다.

트리거를 활용하여 now() 함수를 적용하는 방법이다.

https://jsonobject.tistory.com/122

 

MySQL 테이블 생성시 DATETIME 타입에 DEFAULT로 현재 시간 입력하기

Oracle(오라클)에서는 테이블 생성시 날짜와 시간을 저장하는 DATE 타입에 아래와 같이 SYSDATE로 기본값을 부여할 수 있다. CREATE TABLE ORACLE_TABLE( DATE_CREATED DATE DEFAULT SYSDATE ) ; 당연한 생각에 My..

jsonobject.tistory.com

 

 

 

SMALL