我不太确定如何提出这个问题。
该表将其主要数据存储在JSONB列中。其他列是整数主键,唯一文本辅助键,应用程序生成的整数事务ID,以及上次执行的操作类型(插入,更新,删除)。
有5个触发器。
所有触发器似乎都有效,并且使用新的ID和JSONB列中的ID创建记录。
但是,在更新时,新操作将设置为从TG_OP变量更新,但记录将插入到表中,从而创建重复键。由于重复记录,该记录的后续操作失败。
我已经在pgAdmin调试器中逐步完成了它。它似乎正确地通过每个触发器。它完成了插入的记录(例如tranid = 254,operation = insert)和另一个来自更新的记录(例如tranid = 256,operation = update)。存档表添加了一条记录,显示原始信息为254 / insert,并被256 / update替换。
但主表中有两条记录!!!
这违反了应该导致其失败的两个唯一性约束:
CONSTRAINT npprimarykey_id PRIMARY KEY (id),
CONSTRAINT npid_txt_unique UNIQUE (id_txt)
除此之外,正在执行的命令是UPDATE
。
我不清楚在哪里查看或在哪个论坛上提问。哪些公司建立Postgresql频繁的论坛?
谢谢,
大卫