0

从 MySQL 触发器开始,如下所示:

delimiter #

create trigger comments_after_ins_trig after insert on comments
for each row
begin
  insert into comment_types (comment, user_id) values (new.comment, new.user_id);
end#

假设我想将插入内容拆分到不同的表中,例如,如果评论包含粗俗词 ( LOCATE('sh**', comment) > 0),而不是 comment_types 我想插入到名为 vulgar_comments 的表中,如果评论包含词“谢谢”或“不错”插入进入 nice_comments 等。基本上如何使表名插入到该触发器的变量中?

4

1 回答 1

3

试试这个,我已经测试过了,这对我有用:

delimiter $$
drop trigger if exists `comments_after_ins_trig`$$
create trigger `comments_after_ins_trig` after insert on comments
for each row
begin
 if(locate("sh**", new.comment) > 0) then
   insert into vulgar_comments(comment, user_id) values (new.comment, new.user_id);
 else
   insert into comment_types (comment, user_id) values (new.comment, new.user_id);
 end if;
end$$

delimiter ;
于 2012-11-24T17:43:17.337 回答