我正在从表中删除这一行,它在 FK 上有一堆级联,最终它给了我这个错误:
错误:在表“foo_route”上插入或更新违反了外键约束“foo_route_bar_fk”
SQL 状态:23503
详细信息:表“bar”中不存在键 (bar_key)=(2176)。
foo_route_bar_fk 定义如下:
ALTER TABLE foo_route
ADD CONSTRAINT foo_route_bar_fk FOREIGN KEY (bar_key) REFERENCES bar (bar_key)
MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE;
通过删除与这两个无关的表,我得到了这个错误。我认为正在发生的事情是触发器或级联导致此错误,但很难找出原因。
我的问题是,你如何在 postgresql 中调试这样的问题? 导致此错误的一系列步骤是什么? Postgresql 只告诉我它在失败之前所做的最后一件事的结果。如果这是代码,则错误将提供非常有用的堆栈跟踪。有没有办法在 Postgresql 中看到类似的东西?