大家好,欢迎回答我的愚蠢问题。
我开始使用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语句中执行。你不需要一个完整的观点。