我在SQL数据库中有一个包含四列的表:ID,Comp_Id,Cont_Id和Comp_Cont_Id。手动输入ID,Comp_Id,Cont_Id列中的值,并通过连接ID,Comp_Id,Cont_Id列中的值自动生成Comp_Cont_Id列中的值。
例如,如果我们分别输入(201,301,401)(ID,Comp_Id,Cont_Id),则应在表格的Comp_Cont_Id列中自动生成值201_301_401。
有没有办法实现它?如果是这样,请告诉我。
答案 0 :(得分:4)
MS SQL支持计算列,语法在此similar question中给出。
DROP TABLE test99
CREATE TABLE test99 (
id int,
comp_id int,
cont_id int,
comp_cont_id AS cast(id AS varchar) + '_' + cast(comp_id AS varchar) + '_' + cast(cont_id AS varchar)
)
INSERT INTO test99 (id, comp_id, cont_id)
VALUES (201, 301, 401)
SELECT * FROM test99
答案 1 :(得分:3)
您使用PHP或ASP.NET输入值吗?如果用户直接键入表格,您可以尝试使用触发器设置最后一个值。
但是,Comp_Cont_Id是所谓的派生字段。它的价值取决于其他领域。派生字段的示例是记录的总数,价格的平均值等。最好动态地动态地提出字段,而不是存储它。当然,也有例外,比如表现很重要。