我写了一个很简答的触发器,但创建时,提示我
insert into history(name,content)values('name','content');这行有错误,但我把这条insert语句单拿出来执行也没问题。提示错误是: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 'insert into history(name,content)values('name','content')' at line 3CREATE TRIGGER t_wz_u_trigger_bu BEFORE UPDATE ON manuscript FOR EACH ROW
BEGIN
      insert into history(name,content)values('name','content');
END;

解决方案 »

  1.   

    CREATE TRIGGER t_wz_u_trigger_bu BEFORE UPDATE ON manuscript FOR EACH ROW 
    BEGIN 
          insert into history set name = 'name';
    END--try
      

  2.   

    CREATE TRIGGER t_wz_u_trigger_bu BEFORE UPDATE ON manuscript FOR EACH ROW  
    BEGIN  
          insert into "history" set name = 'name'; 
    END 
    --try
      

  3.   

    还是不行,我的insert into history(name,content)values('name','content'); 这条语句,单独运行是可以的。
      

  4.   

    CREATE TABLE `asd` (
      `id` int(11) NOT NULL auto_increment,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;CREATE TABLE `history` (
      `name` varchar(30) NOT NULL default '',
      `content` varchar(30) default '',
    ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;CREATE TRIGGER t_wz_u_trigger_bu BEFORE UPDATE ON asd 
    FOR EACH ROW BEGIN 
          insert into history(name,content)values('name','content'); 
    END;insert into asd VALUES(default);
    update asd set id=11 where id=1;一切正常.
      

  5.   


    delimiter ||
    CREATE TRIGGER t_wz_u_trigger_bu BEFORE UPDATE ON manuscript FOR EACH ROW
    BEGIN
          insert into history(`name`,content)values('name','content');
    END||
    delimiter ;