Locks
qb includes a few methods to help you lock certain rows when executing select
statements.
Note: For locks to work properly, they must be nested inside a transaction
. qb does not handle any of the transaction lifecycle for you.
sharedLock
Name | Type | Required | Default | Description |
No arguments |
A shared lock prevents the selected rows from being modified until your transaction is committed.
lockForUpdate
Name | Type | Required | Default | Description |
---|---|---|---|---|
skipLocked | Boolean |
|
|
A lock for update lock prevents the selected rows from being modified or selected with another shared lock until your transaction is committed.
The main difference between a sharedLock
and lockForUpdate
is that a lockForUpdate
prevents other reads or selects as well as updates.
When using the skipLocked
flag, the query will skip over locked records and only return and lock available records.
noLock
Name | Type | Required | Default | Description |
No arguments |
noLock
will instruct your grammar to ignore any shared locks when executing the query.
Currently this only makes a difference in SQL Server grammars.
lock
Name | Type | Required | Default | Description |
value | string |
| The custom lock directive to add to the query. |
The lock
method will allow you to add a custom lock directive to your query. Think of it as the raw
method for lock directives.
These lock directives vary from grammar to grammar.
clearLock
Name | Type | Required | Default | Description |
No arguments |
Clears any lock directive on the query.