SQL Error [42704]: ERROR: large object xxxxxxx does not exist
SQL Error [42704]: ERROR: large object xxxxxxx does not exist
我有一个 table 的大对象。
当我想删除一行时。我有一个错误:SQL 错误 [42704]:
ERROR: large object 123456 does not exist.
我签入了 pg_largeobject,但没有找到 id = '123456' 的行。
如何删除包含不存在对象的行?
table 上的触发器是
CREATE TRIGGER t_filledreport BEFORE UPDATE OR DELETE ON rep_reportjob
FOR EACH ROW EXECUTE PROCEDURE lo_manage(filledreport);
有两种选择:
暂时禁用触发器:
ALTER TABLE rep_reportjob DISABLE TRIGGER t_filledreport;
DELETE ...;
ALTER TABLE rep_reportjob ENABLE TRIGGER t_filledreport;
作为超级用户,暂时将session_replication_role
设置为replica
:
BEGIN;
SET LOCAL session_replication_role = replica;
DELETE ...;
COMMIT;
注意!禁用触发器后,您可以轻松引入不一致!
我有一个 table 的大对象。 当我想删除一行时。我有一个错误:SQL 错误 [42704]:
ERROR: large object 123456 does not exist.
我签入了 pg_largeobject,但没有找到 id = '123456' 的行。
如何删除包含不存在对象的行?
table 上的触发器是
CREATE TRIGGER t_filledreport BEFORE UPDATE OR DELETE ON rep_reportjob
FOR EACH ROW EXECUTE PROCEDURE lo_manage(filledreport);
有两种选择:
暂时禁用触发器:
ALTER TABLE rep_reportjob DISABLE TRIGGER t_filledreport; DELETE ...; ALTER TABLE rep_reportjob ENABLE TRIGGER t_filledreport;
作为超级用户,暂时将
session_replication_role
设置为replica
:BEGIN; SET LOCAL session_replication_role = replica; DELETE ...; COMMIT;
注意!禁用触发器后,您可以轻松引入不一致!