2013-01-10 26 views
2

我发现的所有示例都与我的代码看起来一样,但我很难使其工作。下面是桌子,在触发器中分配列值会导致“未知系统变量”错误

CREATE TABLE `samfoo` (
`test` varchar(10) default NULL, 
`trig_field` varchar(10) default NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 

而这里的触发:

DELIMITER $$ 

DROP TRIGGER IF EXISTS footrigger$$ 

CREATE TRIGGER samtrigger 
BEFORE INSERT ON samfoo 
FOR EACH ROW 
BEGIN 
    SET trig_field = 1; 
END$$ 

DELIMITER ; 

当我运行它,我得到的错误Unknown system variable 'trig_field'。有任何想法吗?

回答

5

它应该是SET NEW.trig_field := 1;

+1

谢谢。出于某种原因,我找不到示例或教程,并且文档(如往常一样)过于冗长。 :=是什么意思? –

+1

':=' - 作业。 – a1ex07

+0

我的实际代码是'SET NEW.date_string:= date(time_stamp);',我在'字段列表'中出现一个错误:'unknown column'time_stamp'。有任何想法吗? –

相关问题