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ではなく、挿入を別のテーブルに分割したいとします。コメントに「thanks」または「nice」という単語が含まれている場合は、vulgar_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 に答える