【问题标题】:ALTER TABLE takes forever even for a very little table [closed]即使对于一张很小的桌子,ALTER TABLE 也需要永远[关闭]
【发布时间】:2019-05-08 05:39:14
【问题描述】:

我正在使用 Heroku 上的数据库。 我试图在没有默认值的情况下添加另一列。 该表只有 3 行 5 列,但语句仍然需要很长时间才能完成。

我对 SQL 的东西很陌生。有什么我可以解决的吗?更快的选择也将受到欢迎。

【问题讨论】:

  • @meagar 这个问题对我来说非常清楚和完整,它甚至指定没有使用 DEFAULT 值。

标签: sql postgresql heroku alter-table


【解决方案1】:

添加新列需要在表上设置一个短的ACCESS EXCLUSIVE 锁。

您需要这么长时间的原因是有另一个长时间运行的事务在表上持有锁。任何其他锁与ACCESS EXCLUSIVE 冲突,因此您的ALTER TABLE 被阻止。

终止另一笔交易,语句会以闪电般的速度完成。

【讨论】:

猜你喜欢
  • 2011-11-27
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 2011-11-17
  • 2019-07-16
  • 2011-08-12
  • 2011-03-02
相关资源
最近更新 更多