---
title: "LOCK"
url: "https://docs.yugabyte.com/stable/api/ysql/the-sql-language/statements/txn_lock/"
---

# LOCK

Use the LOCK statement to lock a table.

## Synopsis

Use the `LOCK` statement to lock a table.

## Syntax

- [![Grammar Icon](/icons/file-lines.svg)Grammar](#grammar-2)
- [![Diagram Icon](/icons/diagram.svg)Diagram](#diagram-2)

```output.ebnf
lock_table ::= LOCK [ TABLE ] { table_expr [ , ... ] } 
               [ IN lockmode MODE ] [ NOWAIT ]

lockmode ::= ACCESS SHARE
             | ROW SHARE
             | ROW EXCLUSIVE
             | SHARE UPDATE EXCLUSIVE
             | SHARE
             | SHARE ROW EXCLUSIVE
             | EXCLUSIVE
             | ACCESS EXCLUSIVE
```

#### lock\_table

LOCKTABLE,[table\_expr](/stable/api/ysql/syntax_resources/grammar_diagrams#table-expr)IN[lockmode](#lockmode)MODENOWAIT

#### lockmode

ACCESSSHAREROWSHAREROWEXCLUSIVESHAREUPDATEEXCLUSIVESHARESHAREROWEXCLUSIVEEXCLUSIVEACCESSEXCLUSIVE

Table inheritance

`ONLY` and `*` in [table\_expr](/stable/api/ysql/syntax_resources/grammar_diagrams/#table-expr "table_expr") apply when other tables inherit a listed table. See [Table inheritance](/stable/api/ysql/the-sql-language/ddl-inherit/ "Table inheritance").

## Semantics

### *lock\_table*

#### *name*

Specify a table to lock.

### *lockmode*

- Only `ACCESS SHARE` lock mode is supported at this time.
- All other modes listed in *lockmode* are under development.

```
ACCESS SHARE
  | ROW SHARE
  | ROW EXCLUSIVE
  | SHARE UPDATE EXCLUSIVE
  | SHARE
  | SHARE ROW EXCLUSIVE
  | EXCLUSIVE
  | ACCESS EXCLUSIVE
```

## See also

- [SET TRANSACTION](/stable/api/ysql/the-sql-language/statements/txn_set "SET TRANSACTION")
