Cosmos DB 中的计算列,基于另一列的列
Computed column in Cosmos DB, column base on another columns
在SQL 服务器中我们可以创建计算列。例如:
CREATE TABLE Salary
(
id INT,
hours INT,
medical INT,
stake double,
total AS (hours * stake + medical) persisted
)
如何创建基于 Cosmos DB 中其他列的计算列?
据我所知,计算列在 Cosmos DB 中不可用。这是您可以在代码中执行的操作,即在代码中创建计算列并在保存时使其成为文档的一部分。
其他选项是在您的查询中计算此值,并将 return 作为结果的一部分。
因此,虽然 Cosmos DB 使用 SQL 查询语法,但请注意它不是关系数据库,例如 SQL Server。因此,没有 columns 的概念;文档中有 属性(这些属性可能因文档而异。
计算列之类的东西并不直接存在;这是你需要自己实现的东西。有很多方法可以做到这一点,但如果您只查看 Cosmos DB 提供的选项,您可以使用 Cosmos DB 预触发来完成您想要的,您可以在文档写入之前修改文档(在您的情况下, 根据 hours
、stake
和 medical
).
计算 total
属性
您可以找到有关触发器的更多信息 here。
在SQL 服务器中我们可以创建计算列。例如:
CREATE TABLE Salary
(
id INT,
hours INT,
medical INT,
stake double,
total AS (hours * stake + medical) persisted
)
如何创建基于 Cosmos DB 中其他列的计算列?
据我所知,计算列在 Cosmos DB 中不可用。这是您可以在代码中执行的操作,即在代码中创建计算列并在保存时使其成为文档的一部分。
其他选项是在您的查询中计算此值,并将 return 作为结果的一部分。
因此,虽然 Cosmos DB 使用 SQL 查询语法,但请注意它不是关系数据库,例如 SQL Server。因此,没有 columns 的概念;文档中有 属性(这些属性可能因文档而异。
计算列之类的东西并不直接存在;这是你需要自己实现的东西。有很多方法可以做到这一点,但如果您只查看 Cosmos DB 提供的选项,您可以使用 Cosmos DB 预触发来完成您想要的,您可以在文档写入之前修改文档(在您的情况下, 根据 hours
、stake
和 medical
).
total
属性
您可以找到有关触发器的更多信息 here。