2012-09-18 3 views

답변

6

당신이 범위를 정의 할 수 있습니다 : 나는 테이블과 기본 값은 항상에도 불구하고 동일 변경하여이

ALTER TABLE test_table ALTER COLUMN tstz_range SET DEFAULT '[now,infinity]'::tstzrange; 

그러나 그러한 표현 now()에서

현재 타임 스탬프로 평가 사용하려 있는 해당하는 기능 :

SELECT tstzrange(now(), 'infinity', '[)'); 
┌────────────────────────────────────────────┐ 
│     tstzrange     │ 
├────────────────────────────────────────────┤ 
│ ["2012-09-18 15:33:50.186351+00",infinity) │ 
└────────────────────────────────────────────┘ 

그래서 당신은 쉽게 함수를 사용하여 기본값을 만들 수 있습니다

CREATE TABLE plop (
    id serial PRIMARY KEY, 
    some_range tstzrange DEFAULT tstzrange(now(), 'infinity', '[)') 
); 
+0

고맙습니다. tstzrange를 반환하는 자체 함수를 정의하려고했지만이 솔루션은 훨씬 더 우아합니다. –