MYSQL触发器生成1329错误

时间:2012-07-28 12:20:01

标签: mysql triggers warnings

我有两个表,一个列出条目,另一个表示结果。

我正在尝试在条目表上创建一个After触发器,在结果表中创建相应的记录,如果该记录的所有条目信息都已完成。如果应创建结果表,则列fleet不为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

1 个答案:

答案 0 :(得分:0)

“不使用处理程序”

当我在存储过程中使用以下查询时,我遇到了空指针问题...

Select col1 into Var from table1;

相反,我将其更改为

Set var = (select col1 from table1);

这里不会出现致命错误......

尝试将更新的(new.fleet)值存储在变量中,然后使用它..希望它应该解决。