No Microsoft SQL Server, o código abaixo é utilizado para obter o bloqueio IX (Intent Exclusive):
SELECT request_mode FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID() AND resource_associated_entity_id = OBJECT_ID(N'dbo.cars');
No PostgreSQL, pg_locks
a tabela está disponível para informar as informações de bloqueios. No entanto, existem muitos tipos de locktype
, que são:
relação, estender, frozenid, página, tupla, transactionid, virtualxid, objeto, userlock ou advisory
Quais tipos de locktype
é pg_locks
equivalente ao bloqueio IX (Intent Exclusive) do Microsoft SQL Server?
Se locktype
for a coluna errada para olhar pg_locks
, por favor, informe qual coluna pg_locks
devo usar?
Obrigado
Você precisa dar um passo para trás e verificar para que os bloqueios de intenção são feitos.
O bloqueio de transações para o servidor MS-SQL é amplamente explicado aqui: https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide
E para o PostgreSQL está amplamente explicado aqui https://www.postgresql.org/docs/current/mvcc.html
O documento do servidor MS-SQL diz:
Não há equivalente a bloqueios de intenção no PostgreSQL. Os modos de bloqueio IS, IX, SIX, IU, SIU, UIX não têm equivalente porque se referem a um conceito que o PostgreSQL não tem e aparentemente não precisa.