Вычисляемый столбец в базе данных Cosmos, основание столбца на других столбцах - PullRequest
1 голос
/ 27 апреля 2020

На SQL сервере мы можем создать вычисляемый столбец. Например:

CREATE TABLE Salary
(
  id INT,
  hours INT,
  medical  INT,
  stake double,
  total AS (hours * stake + medical) persisted
)

Как создать столбец, рассчитанный для других столбцов в базе данных Cosmos?

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Итак, хотя Cosmos DB использует синтаксис запроса SQL, обратите внимание, что это не реляционная база данных, такая как SQL Server. Таким образом, нет понятия столбцов ; в документах есть свойства (и они могут различаться в зависимости от документа.

Такие вещи, как вычисляемые столбцы, не существуют напрямую; это то, что вам нужно реализовать самостоятельно. способов сделать это, но если вы смотрите только на опции, которые предоставляет Cosmos DB, вы можете выполнить sh то, что вы хотите, с помощью предварительного триггера Cosmos DB, где вы можете изменить документ перед его записью (в вашем case, вычисляя свойство total в терминах hours, stake и medical).

Более подробную информацию о триггерах можно найти здесь .

0 голосов
/ 27 апреля 2020

AFAIK, вычисляемые столбцы недоступны в Cosmos DB. Это то, что вы можете сделать в коде, т.е. создать вычисляемый столбец в вашем коде и сделать его частью документа при сохранении.

Другой вариант - вычислить это значение в вашем запросе и вернуть как часть результата.

...