Препятствуйте нам сказать вас имейте таблицу t (I int нулевое, чарс (1))
введите в t выберите 1, «a»
проденьте нитку вопросы A1 это:
начните трудыы
УСТАНОВИТЕ REPEATABLE УРОВНЯ ИЗОЛЯЦИИ ТРУДЫОВ ПРОЧИТАНО
выберите * от t где i=2
и после этого как раз сидит там. Вперед приходят резьба b и вопросы
выберите * от t где i=2
уточните a='c t установленное где i=2
1-ое из этих заявлений B преуспеет, но 2-ое одно не ждать до резьбы a выдавало поручает. Будет проблема однако: легко увидеть что b может легк отвергнуть изменение сделанное a, если он действует основывающ на, то он видит когда он восстановлял рядок. Для той причины, более лучшее выдать
a='c уточнения t установленное где i=2 и a='a
Это эффективно проверяет что b уточняет он думает он уточняет. И это точно как клиент-основанная стрелка работает, которая будет самым обычным типом стрелки используемой в сегодняшних средствах разработки программного обеспечения, специально размещённый в Интернетее: отсутствие трудыов, отсутствие замка, но во время проверки уточнения всех полей которые были прочитаны, и если любое изменяло, то, тогда сообщения ошибки к влиянию что другой потребитель дорабатывал resultset.
Если вы хотите исключить это, то вы должны выдать even more рестриктивный уровень SERIALIZABLE изоляции трудыов в резьбе b, и как только вы читаете рядки в a, уточняете их там путем использовать некоторую думмичную колонку как раз в этой цели. После этого b не будет увидеть рядки могут быть доработаны a - правильно, потому что в противном случае b не знал бы что эти рядки теперь работаются дальше A. Но это конечно приносит в вопрос a разбивая, выходя для обеда, etc, etc.
Для той причины, клиент-размещаемая стрелка будет вероятно практически дорогой сделать вс это, которое почему будет самым широко распространённый типом деятельностей базы данных сегодня.