응용개발

CUBRID에서 systimestamp, sysdatetime default값에 대한 정의

by cubebridge posted Dec 16, 2009
CUBRID에서 table생성 시 아래와 같이 systimestamp와 sysdatetime(sysdate도 포함)을 default값으로 생성했을 경우,
예)
create table xtbl
(
A int,
B timestamp default systimestamp not null,
C datetime default sysdatetime not null
)
=== <Help: Schema of a Class> ===

 <Class Name>

     xtbl

 <Attributes>

     a                    INTEGER
     b                    TIMESTAMP DEFAULT timestamp '11:48:50 AM 12/15/2009' NOT NULL
     c                    DATETIME DEFAULT datetime '11:48:50.722 AM 12/15/2009 ' NOT NULL

위와 같은 테이블 구조가 나타나게 된다. 위의 테이블 구조를 보게 되면 timestamp와 datatime이 테이블 생성 시간을 default값을 가지고 있는 것을 보게 된다. 이때 주의할 사항에 대해서 아래와 같이 설명하도록 한다.
1. insert문 수행 시 value값에 각 칼럼의 type에 맞게 systimestamp나 sysdatetime을 넣어 주지 않고 default값을 사용하게 된다면 default값은 table생성일이 되는 것에 주의 해야 한다.
2. unload/load작업 시 unload받은 파일은 최초 table이 생성된 timestamp와 datetime을 가지고 있다. 따라서 load작업을 하여도 최초에 default값은 변화 없이 가지고 있게 된다.


주의 사항
- default가 systimestamp, sysdatetime, sysdate라고 해서 insert문이 수행된 날짜의 값이 입력되는 것이 아니므로 입력 날짜 값을 데이터로 이용하기 위해서는 반드시 value값에 systimestamp, sysdatetime, sysdate 등, 현재 시스템 시간을 넣을 수 있도록 해주어야한다.
- table에서의 default설정은 특정 값으로 고정하고자 할 때 "...DEFAULT timestamp '11:48:50 AM 12/15/2009'..."와 같이 설정하는 것이 필요하다.

Articles

1 2 3