Таблица заблокирована после быстрой вставки и обновления 1 записи - PullRequest
0 голосов
/ 12 февраля 2020

Я выполнил несколько запросов, как показано ниже, где он вставляет 1 строку в таблицу, затем ОБНОВЛЯЕТ ее, и я не получил никакой ошибки.

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

Знаете ли вы, почему запрос ниже заблокирует таблицу?

Можно ли не устанавливать SET vchB = vchNumber, vch C = vchNumber сразу после INSERT INTO ?

Я читаю , когда / какие блокировки удерживаются / освобождаются на уровне изоляции READ COMMITTED , и в нем говорится «Вся блокировка будет снята только после подтверждения / отката».

Приведенные ниже операторы INSERT и UPDATE были успешно зафиксированы (это только строки INSERT и UPDATE 1 в таблице), и для их выполнения потребовалась всего одна секунда, но, тем не менее, когда другие люди запрашивают таблицу, она просто зависает.

Спасибо Вы.

BEGIN TRANSACTION T1    
INSERT INTO myTbl(vchSN,vchNumber,vchName)  
SELECT 'AB12','1234','My Name'

UPDATE myTbl 
SET vchB = vchNumber,  vchC = vchNumber,  vchtab = 'N'  where vchSN = 'AB12'

COMMIT TRANSACTION T1
...