我有一个查找表,其中包含一列来源(来自通过我创建的 Web 服务 API 捕获的各种硬编码活动)以及应该与它们相关联的各个品牌。这样我就可以为品牌为空的记录赋予品牌——这样他们就可以通过营销自动化工具使用特定模板受到欢迎。
我最终会弃用此 API 并将其替换为需要品牌的 API,但与此同时,我必须制定一个临时解决方案,直到我给所有品牌团队时间来更改他们的 API 调用。
我写了这个函数:
CREATE OR REPLACE FUNCTION public.brand_lookup(IN i_brand TEXT )
RETURNS SETOF RECORD VOLATILE AS
$$
BEGIN
RETURN QUERY
UPDATE subscriber
SET brand = (SELECT brand FROM brand_translation
WHERE source = subscriber.source);
END;
$$
LANGUAGE plpgsql;
以及在插入记录时触发该功能的触发器:
CREATE TRIGGER brand_translation
AFTER INSERT ON subscriber
FOR EACH ROW EXECUTE PROCEDURE public.brand_lookup();
但是我的触发器返回一个错误,“错误:函数 public.brand_lookup() 不存在”(但它创建成功)“。除了我的触发器看不到我的函数这一事实之外,该函数会执行我的操作吗?我打算吗?我对函数相当陌生(正如你可能知道的那样)。