我有很多对象需要插入表中。插入后,可能有三个选项:创建,更新和失败。看起来像upsert
,但我需要详细的结果。
我尝试使用on_conflict_do_update
,但后来我无法确定哪些更新,创建和失败了。
我真的不想使用迭代来处理异常块中的每个项目,也许您会有一些选择?
答案 0 :(得分:0)
您要如何处理这些信息?一种方法是使用Postgres触发器,该触发器在插入或更新行时执行特定的操作。定义一个在插入或更新表之前执行函数的触发器。处理要在触发功能中创建/更新的数据要执行的操作。
CREATE FUNCTION handle_modify() RETURNS trigger AS $modify$
BEGIN
IF TG_OP='INSERT' THEN
--do something with created data NEW.data
END IF;
IF TG_OP='UPDATE' THEN
--do something with updated data NEW.data or OLD.data
END IF;
END
$modify$ LANGUAGE plpgsql;
CREATE TRIGGER modify AFTER INSERT OR UPDATE ON your_table
FOR EACH ROW EXECUTE PROCEDURE modify();