PostgreSQL根据日期设置表年龄
问题描述:
我遇到了我的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做。
请帮忙。 谢谢
答
您需要一个触发器来计算插入时间。
该解决方案的缺点是,您需要每年更新表格 - 或者实际上每年都会更新一次该表格,并将该日期与出生日期一行,以使年龄列保持“至今”。
通常,存储可轻松从现有数据导出的信息(特别是如果计算起来便宜),不是一个好主意。
您可以创建一个返回基于以下选择的动态信息的视图:
select name,
dob,
age(dob) as age
from guy;
,将永远显示最新信息,而不需要不断更新的数据表。