Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да прекъсна операция INSERT в MySql тригер?

Попаднах на това и въпреки че решението работи, по-късно се натъкнах на това, което ми се струва по-добро решение. Подозирам, че това не беше опция, когато първоначално беше отговорено на този въпрос.

CREATE TRIGGER `TestTable_SomeTrigger`
BEFORE UPDATE ON `test_table`
FOR EACH ROW
BEGIN
    DECLARE msg VARCHAR(255);
    IF (SomeTestToFail = "FAIL!") THEN
        set msg = "DIE: You broke the rules... I will now Smite you, hold still...";
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg;
    END IF;

    -- Do any other code here you may want to occur if it's all OK or leave blank it will be
    --  skipped if the above if is true
END$$

Това вече ще върне хубаво (или зло!) съобщение за грешка, което можете да хванете. За повече информация относно това вижте:http://dev.mysql.com/doc/refman/5.5/en/signal.html

Надявам се това да помогне на някой друг!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се свърже с MySQL сървър грешка 111

  2. актуализиране на стойностите на колоните с колона на друга таблица въз основа на условие

  3. GROUP BY поведение, когато в клаузата SELECT не присъстват агрегатни функции

  4. Защита на MySQL сървър

  5. Важни проверки на здравето за вашите MySQL сървъри с реплики