SQL:如何生成一个自动生成年份的变量



大家好,欢迎回答我的愚蠢问题。

我开始使用sql,我想制作一个这样的表:

create table manager(
id int primary key not null,
working_comp int,
started_working year,
years_passed year default {getdate() - started_working} not null,
foreign key (working_comp) references company(company_AFM)
);

解释:我希望year_passed列表示经理为公司工作的年份,因此我希望它从当前日期减去他开始为公司工作的日期自动生成

我甚至不知道是否可以

你能启发我一下吗??

恐怕这是SQL表中不能做到的。它不是通常的用例,至少在表中不是这样。但你有几个非常好的选择:

选项1

SQL具有所谓的VIEWS。它们就像虚拟表。它们用于创建";计算的";表。使用在您的业务中经常使用的常规联接或操作。我会创建一个视图,在你想要的年份里,在一个额外的栏中拍手:

create view manager2 as 
Select id, working_comp, started_working,getdate() - started_working as years_passed
from manager;

您只需在普通表中插入,但在查询时会在视图中插入。

选项2

您可以用开发应用程序(连接数据库的语言(所用的语言进行计算。因此,无论何时查询数据,都要进行计算。

这里还有两个选项。在查询之后用developmmg语言进行计算,或者直接在select语句中进行计算,就像在视图中一样。

对于这样一个简单的计算,我的建议是在select语句中执行。你不需要一个完整的观点。

最新更新