运行时:
TRUNCATE TABLE YYYYY RESTART IDENTITY
我看到此错误消息:
ERROR: cannot truncate a table referenced in a foreign key constraint
DETAIL: Table "XXXXX" references "YYYYY".
HINT: Truncate table "XXXXX" at the same time, or use TRUNCATE ... CASCADE.
在以下两个建议中HINT
:
使用
TRUNCATE ... CASCADE
是有意义的,并且有效,但不太明确,因为必须检查YYYYY
以查看级联的去向。这让我想尝试另一种选择:Truncate table "XXXXX" at the same time
,但我的问题:截断表是什么意思
at the same time
?
我尝试添加 a TRUNCATE XXXXX...
(并将它们都包装在BEGIN
/中COMMIT
),但这会产生相同的错误。
这意味着同一个语句。您可以截断多个表:
Postgres 文档中的更多详细信息:
TRUNCATE
.1) 级联截断可能很危险。如果您有一个查找表(在这种情况下,我相信 XXXX),请与它告别,因为它将被截断,您将丢失所有数据。
例如,您有一个客户表 (YYYY),其中包含 FK 到订单 (XXXX)。当您使用级联截断截断 YYYY 时,它会截断 YYYY。如果不是,它将显示您看到的截断错误。
2)同时截断表'XXXX'意味着它建议你也截断你的查找/参考表。