我似乎无法创建触发器。我已经尝试了以下两种方式进行更新。我通过插入语句不断收到语法错误。我搜索了过去4个小时的论坛和网络搜索,没有任何变化。对此还有更多代码,它基本上会重复执行。任何帮助,将不胜感激。谢谢你。我正在运行MySQL 5.0,并通过phpMyAdmin 2.8.2.4作为Administrator / Root访问。
CREATE TRIGGER insert_classes AFTER insert ON Classes FOR EACH ROW BEGIN insert into insert_tracking_classes (classID, Title, classDesc, Category, isEvent, picLeft, picTop, picRight, picBottom, prnColor, modified) values(NEW.classID, NEW.Title, NEW.classDesc, NEW.Category, NEW.isEvent, NEW.picLeft, NEW.picTop, NEW.picRight, NEW.picBottom, NEW.prnColor, NOW()); END; CREATE TRIGGER insert_classes AFTER insert ON Classes FOR EACH ROW BEGIN insert into insert_tracking_classes set classID = NEW.classID, Title = NEW.Title, classDesc = NEW.classDesc, Category = NEW.Category, isEvent = NEW.isEvent, picLeft = NEW.picLeft, picTop = NEW.picTop, picRight = NEW.picRight, picBottom = NEW.picBottom, prnColor = NEW.prnColor, modified = NOW(); END;
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line * (at the end of the insert/values statement)
DELIMITER $$ CREATE TRIGGER insert_classes AFTER insert ON Classes FOR EACH ROW BEGIN insert into insert_tracking_classes (classID, Title, classDesc, Category, isEvent, picLeft, picTop, picRight, picBottom, prnColor, modified) values(NEW.classID, NEW.Title, NEW.classDesc, NEW.Category, NEW.isEvent, NEW.picLeft, NEW.picTop, NEW.picRight, NEW.picBottom, NEW.prnColor, NOW()); END$$ DELIMITER ;
SQL query: DELIMITER $$ CREATE TRIGGER insert_classes AFTER INSERT ON Classes FOR EACH ROW BEGIN INSERT INTO insert_tracking_classes( classID, Title, classDesc, Category, isEvent, picLeft, picTop, picRight, picBottom, prnColor, modified ) VALUES ( --> NEW.classID, NEW.Title, NEW.classDesc, NEW.Category, NEW.isEvent, NEW.picLeft, NEW.picTop, NEW.picRight, NEW.picBottom, NEW.prnColor, NOW( ) ); MySQL said: Documentation #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$ CREATE TRIGGER insert_classes AFTER insert ON Classes F' at line 1
CREATE TABLE insert_tracking_classes ( --- Same table layout for Classes table minus Modified time and tracking_id tracking_id int(11) NOT NULL AUTO_INCREMENT, classID int(11) NOT NULL, Title varchar(48) NOT NULL, classDesc text, Category varchar(128) default NULL, isEvent int(8) default NULL, picLeft int(8) default NULL, picTop int(8) default NULL, picRight int(8) default NULL, picBottom int(8) default NULL, prnColor varchar(4) default NULL, modified datetime NOT NULL, PRIMARY KEY (tracking_id) );
更新:尝试使用静态值并删除if和Modifyed = NOW()语句,但不进行任何更改。
必须删除Delimiter,Begin和End语句。
DROP TRIGGER IF EXISTS insert_classes; CREATE TRIGGER insert_classes AFTER insert ON Classes FOR EACH ROW insert into tracking_classes (command, classID, Title, classDesc, Category, isEvent, picLeft, picTop, picRight, picBottom, prnColor, modified) values('insert', NEW.classID, NEW.Title, NEW.Desc, NEW.Category, NEW.isEvent, NEW.picLeft, NEW.picTop, NEW.picRight, NEW.picBottom, NEW.prnColor, NOW());