MY-SQL

Posted in 소프트웨어개발/DB by 지단로보트

 

 

Oracle(오라클)에서는 테이블 생성시 날짜와 시간을 저장하는 DATE 타입에 아래와 같이 SYSDATE로 기본값을 부여할 수 있다.

 

CREATE
    TABLE
        ORACLE_TABLE(
            DATE_CREATED DATE DEFAULT SYSDATE
        )
;

 

당연한 생각에 MySQL에서도 동일한 시도를 해보았다. MySQL의 TIMESTAMP은 Oracle의 DATE와 동일한 역할을 하는 타입이다.

 

CREATE
    TABLE
        MySQL_Table(
            DateCreated TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )
;

 

당연히 될 줄 알았지만 결과는 오류가 발생했다. 구글링 결과 MySQL 버전에 따라 아래와 같이 처리해야 한다.

 

MySQL v5.6.5 이상일 경우


CURRENT_TIMESTAMP 함수가 아닌 CURRENT_TIMESTAMP 함수를 사용해야 한다.


CREATE
    TABLE
        MySQL_Table(
            DateInserted TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )
;

 

MySQL v5.6.5 미만일 경우


방법이 없다. 굳이 기본 값으로 현재 시간을 입력하려면 해당 테이블에 트리거(Trigger)를 작성해야 한다.

 

CREATE
    TABLE
        MySQL_Table(
            DateInserted TIMESTAMP
        )
;

CREATE
    TRIGGER MySQL_Table_OnInsert BEFORE INSERT
            ON MySQL_Table FOR EACH ROW
    SET
        NEW.dateInserted = CURRENT_TIMESTAMP
;

 

about author

PHRASE

Level 60  머나먼나라

사나이의 애정은 자신이 육체적 만족을 취한 순간부터 급격히 떨어진다. 다른 여자라면 누구를 막론하고 그가 소유한 여인보다 많은 매력을 가진 듯이 생각되어 그는 변화를 추구한다. 그것과는 반대로 여인의 애정은 이 순간부터 증대한다. -쇼펜하워

댓글 ( 4)

댓글 남기기

작성