19 Jul
2015
19 Jul
'15
12:43 p.m.
Hi, Federico! On Jun 22, Federico Razzoli wrote:
Hello. As we all know, IGNORE "catches" some errors and turns them into warnings. But I've noticed that it does not catch the same errors if they were issued by a trigger (using SIGNAL).
* Is this by design?
INSERT IGNORE is much older than triggers and SIGNAL. And I don't think that when SIGNAL was implemented this use case was considered.
* Is this standard SQL behaior?
There is no INSERT IGNORE in the standard, we can define freely how it should work.
Here is a trigger example to show what I mean:
CREATE TRIGGER bi_t BEFORE INSERT ON t FOR EACH ROW BEGIN SIGNAL SQLSTATE '23000' SET MYSQL_ERRNO = 1048; END
Regards, Sergei