CREATE TABLE `movie_de` (
  `id` int(11) NOT NULL auto_increment,
  `mdaihao` int(11) default NULL,
  `m_file` text collate utf8_czech_ci,
  `m_num` text collate utf8_czech_ci,
  `m_date` date default NULL,
  `m_id` int(11) default NULL,
  `m_images` varchar(200) collate utf8_czech_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
CREATE TABLE `norlewa_movie` (
  `id` int(11) NOT NULL auto_increment,
  `movie_name` text collate utf8_danish_ci NOT NULL,
  `movie_type` int(11) default NULL,
  `movie_daima` int(11) default NULL,
  `movie_img` varchar(200) collate utf8_danish_ci default NULL,
  `last_movie` text collate utf8_danish_ci,
  `last_id` int(11) default NULL,
  `last_date` date default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
上面两张表 我要建立个触发器 在movie_de添加新列时 在norlewa_movie中的那个电影编号下的最后一集电影要更新 
可我做的触发器总是报错。。不知道什么原因。
CREATE TRIGGER norlewamoviet
AFTER INSERT ON movie_de
FOR EACH ROW
BEGIN
     update norlewa_movie set last_id=new.id,
last_movie=new.m_num where 
movie_daima=new.mdaihao;
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 7 说是语法错误 我用的是5.0  请各位帮忙

解决方案 »

  1.   

    drop trigger norlewamoviet; 
    CREATE TRIGGER norlewamoviet
    AFTER INSERT ON movie_de
    FOR EACH ROW
    BEGIN
         update norlewa_movie set last_id=new.id,
    last_movie=new.m_num where 
    movie_daima=new.mdaihao;
    end;
    不是没有drop trigger norlewamoviet; 的问题吧
      

  2.   

    没问题呀,你是不是没有delimiter ||
      

  3.   

    ERROR 1064 (42000): 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 'updat
    e norlewa_movie set last_id=new.id,
    last_movie=new.m_num where
    movie_daima' at line 5
      

  4.   

    mysql> CREATE TRIGGER norlewamoviet
        -> AFTER INSERT ON movie_de
        -> FOR EACH ROW
        -> BEGIN
        ->      update norlewa_movie set last_id=new.id,
        -> last_movie=new.m_num where
        -> movie_daima=new.mdaihao;
    ERROR 1064 (42000): 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 'updat
    e norlewa_movie set last_id=new.id,
    last_movie=new.m_num where
    movie_daima' at line 5
      

  5.   


    是呀,就加了个delimiter ||
      

  6.   

    决绝了 一条语句用BEGING END才出错的