2012-07-28 77 views
0

我有兩個表,一個列出條目,另一個有結果。MYSQL觸發器產生1329錯誤

我想創建一個After觸發器的條目表,創建結果表中的相應記錄,如果該記錄的所有條目信息已完成。如果應該創建結果表,那麼列隊不是NULL。

IF (NEW.fleet IS NOT NULL) THEN 

INSERT INTO race_results (race_id,yr,race_num,owner_id,checked_in,flt)VALUES(NEW.race_id,NEW.yr,NEW.race_num,NEW.owner_id,"N",NEW.fleet)ON DUPLICATE KEY UPDATE flt =NEW.fleet; 

END IF 

這段代碼運行良好,除非它在NEW.fleet等於NULL的行上運行,它會拋出#1329錯誤。

在此先感謝。

根據輸入,這是我最近的嘗試。仍然沒有工作 表俱樂部只是一個不同的表,最終做出成功的選擇。

BEGIN 
DECLARE clb INT(10); 
declare exit handler for not found 

IF (NEW.fleet IS NOT NULL) THEN 

INSERT INTO race_results (race_id,yr,race_num,owner_id,checked_in,flt) 
VALUES(NEW.race_id,NEW.yr,NEW.race_num,NEW.owner_id,"N",NEW.fleet) 
ON DUPLICATE KEY UPDATE flt =NEW.fleet; 

END IF; 
SELECT club_id INTO clb from clubs WHERE club_id=1; 
END 
+0

這可能對您有用http://stackoverflow.com/questions/6957751/i-am-getting-error-1329-no-data-zero-rows-fetched-selected-or-processed-i – Wolfe 2012-07-28 15:22:40

回答

0

「如果不使用處理程序」

我有空指針問題,當我在使用存儲過程以下查詢......

Select col1 into Var from table1; 

相反,我把它改成

Set var = (select col1 from table1); 

這裏它並不像致命的錯誤...

嘗試將更新後的(new.fleet)值存儲在變量中,然後使用它..希望它能解決。

+0

嘗試過它沒有工作,一直在與處理程序玩耍,似乎也可以得到那個工作。 – davewhirlwind 2012-07-28 20:05:30