第一个触发器里面 set @email:=NEW.password; 是不是改为set @email:=NEW.email;?猜测 虽然这个赋值语句可能没错,但是你下面的第一条insert语句里面cdb_members的showemail字段匹配的@email:=NEW.password,会出现类型转换错误的吧?你自己看看。第二条insert语句 insert into coc_enewsmember (user...
在mysql中创建触发器出错,高人解
syntax错误是指你的语句结构错误,语法错误,就是说你的语句里面有疏忽的地方
第一个触发器里面
set @email:=NEW.password; 是不是改为set @email:=NEW.email;?猜测
虽然这个赋值语句可能没错,但是你下面的第一条insert语句里面cdb_members的showemail字段匹配的@email:=NEW.password,会出现类型转换错误的吧?你自己看看。
第二条insert语句
insert into coc_enewsmember (userid,username,password,email,registertime,groupid,checked) values (@myid,@name,@pwd,email,@regdate,1,1);
values后面的email肯定错了嘛,要改为@email?
第二个触发器也是类似的语法错误
create trigger的时候是on表 uchome_spacefield ,你下面的update的时候就是另外一张表uchome_space了,如果是两张不同的表的话,不能直接传的吧,new.field_1 和 uid = old.uid。
都是很粗心的错误,你自己看看对不对,希望对你有帮助。2008-08-25
你犯了三个错误——
一、赋值前没声明变量
MySQL在赋值给变量前应该首先用declare语句声明变量名和类型,例如declare myid int;
二、赋值语句错误
set @myid:=NEW.uid; 这条赋值语句是错误的。在MySQL里,赋值语句应该写做set myid=NEW.uid;
三、结束符没有指定
MySQL默认的语句结束符是分号;所以如果你在写触发器定义语句的过程中遇到了分号;则MySQL就认为定义语句结束了,从而造成这个触发器的定义是不完整的,因此出现了语法错误的提示。
改正的方法是在phpmyadmin命令框下的Delimiter(结束符)选项中改为其他的字符,例如斜线/。执行后就可以了。2008-08-25