2012-07-28 119 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