【问题标题】:Trigger with postgresql用 postgresql 触发
【发布时间】:2010-11-08 00:44:30
【问题描述】:

首先是我的代码:

CREATE FUNCTION unknown_Model ()
RETURNS TRIGGER
LANGUAGE plpgsql
AS $$
--checks if the product table has information pertaining to the new PC insertion
BEGIN

    IF (SELECT COUNT(Product.model) 
          FROM Product 
          WHERE Product.model = NEW.model) = 0 THEN 
       INSERT INTO Product VALUES ('X', NEW.model, 'PC');
    END IF;

    RETURN NEW;
END
$$;

CREATE TRIGGER unknownModel
BEFORE INSERT OR UPDATE ON PC
FOR EACH ROW EXECUTE PROCEDURE unknown_Model();

我不断收到错误消息“控制已到达触发过程结束而没有 RETURN”。我查看了互联网上的其他示例,它们与我的非常相似。知道为什么它没有看到我的退货声明吗?

谢谢

【问题讨论】:

    标签: sql postgresql triggers


    【解决方案1】:

    试试

    CREATE FUNCTION unknown_Model () 
    RETURNS TRIGGER 
    AS $$ 
    --checks if the product table has information pertaining to the new PC insertion 
    BEGIN 
    
        IF (SELECT COUNT(Product.model)  
              FROM Product  
              WHERE Product.model = NEW.model) = 0 THEN  
           INSERT INTO Product VALUES ('X', NEW.model, 'PC'); 
        END IF; 
    
        RETURN NEW; 
    END 
    $$ LANGUAGE plpgsql ;
    

    即将语言声明移到过程主体之后。 AFAIK 这不应该很重要,但是...好吧,试试看是否有帮助。

    分享和享受。

    【讨论】:

    • 感谢您的帮助。事实证明,假设再次烧毁了我。我假设 plpgsql 已经设置好了。一旦我设置它,我的代码就可以工作了。
    猜你喜欢
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2012-04-07
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多