2013-05-08 126 views
0

我遇到了我的postgreSQL數據庫的問題。我有一個名字,出生日期和年齡的表格。PostgreSQL根據日期設置表年齡

CREATE TABLE guy 
     (name  VARCHAR(10), 
     dob  DATE, 
     age  INTEGER, 
     PRIMARY KEY (name) 
     ); 

我想要做的是當我插入一個新人,我想年齡自動成爲年齡。

INSERT INTO guy VALUES ('Bill', '05-02-1992'); 

,並有年齡自動成爲21

我不知道如果我需要一個觸發器來做到這一點,或者如果有什麼東西我可以在DDL做。

請幫忙。 謝謝

回答

3

您需要一個觸發器來計算插入時間。

該解決方案的缺點是,您需要每年更新表格 - 或者實際上每年都會更新一次該表格,並將該日期與出生日期一行,以使年齡列保持「至今」。

通常,存儲可輕鬆從現有數據導出的信息(特別是如果計算起來便宜),不是一個好主意。

您可以創建一個返回基於以下選擇的動態信息的視圖:

select name, 
     dob, 
     age(dob) as age 
from guy; 

,將永遠顯示最新信息,而不需要不斷更新的數據表。

相關問題