MySQL trigger BEFORE INSERT with INSERT and SIGNAL won't work
<pre><code>CREATE TABLE `tbl_backup` (
  `user_email` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `users` (
  `user_email` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DELIMITER ;;

CREATE TRIGGER `dousers` BEFORE INSERT ON `users` FOR EACH ROW
BEGIN
IF LOWER(NEW.user_email) LIKE '%@test.pl' THEN
     INSERT INTO tbl_backup (`user_email`) VALUES (NEW.user_email);
     SIGNAL SQLSTATE '45000' SET message_text = 'Strange error!';
END IF;

END;;

DELIMITER ;
</code></pre>

<p>Trigger work, but only in half way. when  the condition is fulfilled then I got error (this one defined in trigger <code>Strange error!</code>) but <code>INSERT INTO tbl_backup</code> doesn't work. I don't have new records in <code>tbl_backup</code> table. If I remove <code>SIGNAL SQLSTATE</code> from trigger then when the condition is fulfilled I see new records in <code>tbl_backup</code>. I also test this trigger with older MySQL 5.1 with <code>call some_non_exist_function</code> and it works like a charm. I'm doing something wrong or in MySQL 5.5 I can't use <code>INSERT</code> and <code>SIGNAL</code> in single trigger?
MySQL ver 5.5.45</p>