来自phpMyAdmin的MySQL触发器查询

来自phpMyAdmin的MySQL触发器查询,php,mysql,sql,phpmyadmin,Php,Mysql,Sql,Phpmyadmin,我正在从我的phpMyAdminSQL选项卡运行以下查询 CREATE TRIGGER testTrigger AFTER INSERT ON tbl_table1 FOR EACH ROW BEGIN INSERT INTO tbl_table2 (id,name) values (NEW.id,NEW.name); END 但每次我收到这个错误消息: #1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第5行“”附近要使用的正确语法 Im使用MySQL客

我正在从我的phpMyAdminSQL选项卡运行以下查询

CREATE TRIGGER testTrigger 
AFTER INSERT ON tbl_table1 
FOR EACH ROW 
BEGIN 
INSERT INTO tbl_table2 (id,name) values (NEW.id,NEW.name); 
END
但每次我收到这个错误消息:

#1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第5行“”附近要使用的正确语法

Im使用MySQL客户端版本:5.1.37,PHPMyadmim版本信息:3.2.2.1deb1

如果要在触发器中使用
SET NEW.col\u name=value
,请 请注意,不能在操作后使用此选项,必须使用 它在动作之前

因此,您可能应该尝试:

CREATE TRIGGER testTrigger 
BEFORE INSERT ON tbl_table1 
FOR EACH ROW 
BEGIN 
    INSERT INTO tbl_table2 (id,name) values (NEW.id,NEW.name); 
END
编辑:我尝试了这个,它在MySQL中工作

DROP TRIGGER IF EXISTS testTrigger;
CREATE TRIGGER testTrigger 
BEFORE INSERT ON tbl_table1 
FOR EACH ROW 
BEGIN 
  INSERT INTO tbl_table2 VALUES (NEW.id,NEW.name);
END;
然后尝试
插入test1,选择5,'pois'和触发器工作

看:

如果要在触发器中使用
SET NEW.col\u name=value
,请 请注意,不能在操作后使用此选项,必须使用 它在动作之前

因此,您可能应该尝试:

CREATE TRIGGER testTrigger 
BEFORE INSERT ON tbl_table1 
FOR EACH ROW 
BEGIN 
    INSERT INTO tbl_table2 (id,name) values (NEW.id,NEW.name); 
END
编辑:我尝试了这个,它在MySQL中工作

DROP TRIGGER IF EXISTS testTrigger;
CREATE TRIGGER testTrigger 
BEFORE INSERT ON tbl_table1 
FOR EACH ROW 
BEGIN 
  INSERT INTO tbl_table2 VALUES (NEW.id,NEW.name);
END;
然后尝试
插入test1,选择5,'pois'和触发器工作