diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index c0278000b1b..6a5f93585da 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -99,9 +99,9 @@ ALTER TABLE [ IF EXISTS ] name ALTER TABLE changes the definition of an existing table. There are several subforms described below. Note that the lock level required - may differ for each subform. An ACCESS EXCLUSIVE lock is held - unless explicitly noted. When multiple subcommands are listed, the lock - held will be the strictest one required from any subcommand. + may differ for each subform. An ACCESS EXCLUSIVE lock is + acquired unless explicitly noted. When multiple subcommands are given, the + lock acquired will be the strictest one required by any subcommand. @@ -313,8 +313,8 @@ ALTER TABLE [ IF EXISTS ] name ADD table_constraint [ NOT VALID ] - This form adds a new constraint to a table using the same syntax as - , plus the option NOT + This form adds a new constraint to a table using the same constraint + syntax as , plus the option NOT VALID, which is currently only allowed for foreign key and CHECK constraints. @@ -335,6 +335,17 @@ ALTER TABLE [ IF EXISTS ] name endterm="sql-altertable-notes-title"> below for more information about using the NOT VALID option. + + + Although most forms of ADD + table_constraint + require an ACCESS EXCLUSIVE lock, ADD + FOREIGN KEY requires only a SHARE ROW + EXCLUSIVE lock. Note that ADD FOREIGN KEY + also acquires a SHARE ROW EXCLUSIVE lock on the + referenced table, in addition to the lock on the table on which the + constraint is declared. +