Em SQLServer, fiz um teste parecido com o seu. Qdo vc faz um lock de registro ou trabela, ele nao bloqueia a leitura de outras sessoes, ate' que a sessao de posse do lock, faça um update de algum dado do registro.
Para bloquear o select que vc fez, faca em seguida um update com a mesmo where assim : db_teste=# SELECT * FROM tab_material where codg_serma='10' FOR UPDATE; update tab_material set codg_serma='10' where codg_serma='10' ; teste la e depois envie o resultado. até mais. MIGUEL JOSE DE LIMA wrote: > Caros, participantes... > Sou iniciante neste mundo do PostgreSQL. > Trabalho com outro Banco de Dados - ADABAS (UNIX SOLARIS/MAINFRAME), > mas me incubiram de fazer testes no PostgreSQL para bloquer registros. > Então... > > Estou precisando de ajuda para bloquear a leitura de um registro, ou > seja, > em um cenário como: > "Atualização de Estoque de um Material" : > Antes de atualizar o estoque do material selecionado eu preciso > bloquear o registro para que > nenhuma outra sessão possa obter o dado do registro. > PRECISO DE UMA LEITURA EXCLUSIVA - TOTALMENTE RESTRITIVA. > Estou usando o PostgreSQL 8.3.7 para os testes - em linux > Já li e reli sobre o Isolamento de Transação, mas pode ser que eu não > esteja entendendo...??? > Fiz o seguinte teste via psql: > - Na Sessão "A" > db_teste=# BEGIN WORK; > BEGIN > db_teste=# LOCK TABLE tab_material IN ROW EXCLUSIVE MODE NOWAIT; > LOCK TABLE > db_teste=# SELECT * FROM tab_material where codg_serma='10' FOR UPDATE; > resultado obtido ok! > *** aqui eu preciso bloquear todos os materiais/itens (de um pedido) > - como ex. fiz de apenas 1 (um). > > - Na Sessão "B": > ** Fiz o mesmo SELECT sem a clausula FOR UPDATE: > SELECT * FROM tab_material where codg_serma='10' > > ** aqui eu obtive o resultado ok da leitura. > Portanto, é aqui, neste ponto que não deveria permitir nenhuma > leitura, já que sessão "A" ainda não terminou! > E AI ALGUÉM PODE ME AJUDAR!? > > Obrigado! > > > > > ------------------------------------------------------------------------ > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral