2010-11-08 74 views
0

首先这里是我的代码:触发PostgreSQL的

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(); 

我不断收到错误“触发器过程的控制达到最终没有返回”。我在网上查看了其他例子,它们与我的非常相似。任何想法为什么它没有看到我的退货声明?

感谢

回答

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 不应该问题,但...好吧,试试看看是否有帮助。

分享和享受。

+0

感谢您的帮助。原来的假设再次烧毁了我。我假设plpgsql已经设置好了。一旦我设置好我的代码就行了。 – Pinsickle 2010-11-08 03:49:36