我有一个名为“Account”的表,它是一个经常使用的表,有 17 列,有超过 300,000 行。我正在尝试创建一个新表“NewTable”,它对“Account”表具有外键约束。
我的 CREATE TABLE 语句如下所示:
CREATE TABLE "NewTable"
(
"column1" VARCHAR(100) NOT NULL,
"column2" INTEGER NOT NULL,
PRIMARY KEY("column1")
CONSTRAINT "SomeFK" FOREIGN KEY ("column2") REFERENCES "Account" ("ID")
)
Run Code Online (Sandbox Code Playgroud)
上述语句执行了超过 25 分钟并没有完成。我们终止了交易。
当我们移除外键约束时,它会立即执行。
有人可以让我们知道是什么问题吗?我们最初认为它出于某种原因锁定了“Account”表,但是当我们查看“pg_locks”时,我们没有找到“Account”的任何条目——只有“NewTable”的独占锁。