2010-11-08 85 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