哪些ALTER TABLE命令将需要或不需要表锁?

时间:2012-12-05 17:39:27

标签: sql postgresql

在postgres 9.1中,此查询是否需要表锁? (禁止其他客户写作,写作和阅读)

ALTER TABLE "foos" ADD COLUMN "bar" boolean DEFAULT 'f'

是否存在某些情况,某些情况不会发生?

默认值是否会变慢?

如果它确实锁定了表,它是否还必须对表中的每一行进行操作?或锁定只能暂时保持一次?

我在哪里可以了解更多关于哪些类型的查询执行和不锁定表的信息?

1 个答案:

答案 0 :(得分:1)

是的,它会在进行修改时锁定表格。

  • 如果表格很大且包含许多行数据,则可能需要一段时间。
  • 如果另一个连接当前在表上具有更高优先级的锁定,则此操作将等待锁定被清除

要了解有关PostgreSQL 9.1的更多信息,请查看优秀的online documentation,尤其是ALTER TABLE

部分

此外,here是一个相关的问题,但对于MySQL。它提供了一些可以应用于PostgreSQL的提示和技巧