Как управлять параллелизмом для вставки в C #? - PullRequest
1 голос
/ 14 октября 2008

Многие примеры оптимистичного параллелизма ссылаются на обновления с использованием отметки времени или флага базы данных.

Однако я хочу обработать оптимистичный параллелизм для INSERTS

Чтобы проиллюстрировать это фальшивый сценарий:

Несколько пользователей могут одновременно вставлять записи в журнал, но разрешают только одну запись в журнале.

Без какого-либо контроля параллелизма, поскольку несколько пользователей могут создавать записи журнала, я могу получить несколько записей журнала в одну и ту же дату.

Как предотвратить это на уровне приложения БЕЗ использования базы данных (т. Е. Ограничение уникального ключа базы данных)

Ответы [ 2 ]

4 голосов
/ 14 октября 2008

Независимо от того, определяете ли вы явное ограничение уникального ключа, это именно то, что вы просите.

Вы можете написать блок IF в своем коде SQL, чтобы проверить наличие записи в журнале на указанную дату.

Но явное ограничение уникального ключа даст лучшую производительность.

0 голосов
/ 14 октября 2008

Вы можете написать триггер «при вставке», чтобы проверить содержимое таблицы, а затем отменить вставку, если ваши критерии не выполнены. Это доступно для большинства СУБД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...