MySQL `BEFORE INSERT TRIGGER` 如何在条件下跳过数据插入?

sde*_*ont 4 mysql database triggers

可能的重复:
MySQL 触发器在某些条件下阻止 INSERT

在MySQL中,BEFORE INSERT TRIGGER如何在条件下跳过数据插入?

delimiter //
drop trigger if exists test_trigger //
create trigger test_trigger before insert on t
for each row
begin
  set @found := false;

  #Some code

  if @found then
    #How to skip the data insertion under condition?
  end if;
end   //

delimiter ;
Run Code Online (Sandbox Code Playgroud)

Dev*_*art 5

两种解决方案,都会引发错误:

  1. 调用不存在的存储过程 -CALL non_existent_proc()
  2. 使用SIGNAL语句引发错误 (MySQL 5.5)。

示例1:

...
IF @found THEN
  CALL non_existent_proc();
END IF;
...
Run Code Online (Sandbox Code Playgroud)

示例2:

...
IF @found THEN
  SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'Wrong data';`
END IF;
...
Run Code Online (Sandbox Code Playgroud)