2013-09-23 89 views
0

我使用PostgreSQL和創建見下表:日期字段將自動填寫

CREATE TABLE "TrainingMatrix" 
(
    payroll text NOT NULL, 
    "TrainingName" text NOT NULL, 
    "Institute" text, 
    "TrainingDate" date NOT NULL, 
    "ExpiryDate" date, 
    "RecorderName" text, 
    "EnteringDate" date, 
    CONSTRAINT "TrainingMatrix_pkey" PRIMARY KEY (payroll, "TrainingName", "TrainingDate") 
) 

我想讓EnteringDate被自動由當前的日期在機器每次進入記錄填寫。

回答

1
CREATE TABLE "TrainingMatrix" 
(
    payroll text NOT NULL, 
    "TrainingName" text NOT NULL, 
    "Institute" text, 
    "TrainingDate" date NOT NULL, 
    "ExpiryDate" date, 
    "RecorderName" text, 
    "EnteringDate" date NOT NULL default current_date,--"EnteringDate" date, 
    CONSTRAINT "TrainingMatrix_pkey" PRIMARY KEY (payroll, "TrainingName", "TrainingDate") 
) 
0

通過使用默認的系統日期,你可以achive所需的輸出。

CREATE TABLE "TrainingMatrix" 
(
    payroll text NOT NULL, 
    "TrainingName" text NOT NULL, 
    "Institute" text, 
    "TrainingDate" date NOT NULL, 
    "ExpiryDate" date, 
    "RecorderName" text, 
    "EnteringDate" date default sysdate, 
    CONSTRAINT "TrainingMatrix_pkey" PRIMARY KEY (payroll, "TrainingName", "TrainingDate") 
) 
+1

Postgres中沒有'sysdate'。 –

1
CREATE TABLE "TrainingMatrix" 
(
    payroll text NOT NULL, 
    "TrainingName" text NOT NULL, 
    "Institute" text, 
    "TrainingDate" date NOT NULL, 
    "ExpiryDate" date, 
    "RecorderName" text, 
    "EnteringDate" date not null default current_timestamp, 
    CONSTRAINT "TrainingMatrix_pkey" PRIMARY KEY (payroll, "TrainingName", "TrainingDate") 
) 

CURRENT_TIMESTAMP是equivelent到現在()將給當前日期&時間(包括時區)http://www.postgresql.org/docs/8.1/static/functions-datetime.html

定義列不空也將有助於確保沒有記錄明確地進入沒有時間戳。