Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL `BEFORE INSERT TRIGGER` comment puis-je ignorer l'insertion de données sous condition ?

Deux solutions, toutes deux génèrent une erreur :

  1. Appeler une procédure stockée inexistante - CALL non_existent_proc()
  2. Utilisez SIGNAL instruction pour générer l'erreur (MySQL 5.5).

Exemple 1 :

...
IF @found THEN
  CALL non_existent_proc();
END IF;
...

Exemple 2 :

...
IF @found THEN
  SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'Wrong data';`
END IF;
...