sql >> Database >  >> RDS >> Mysql

Hoe de INSERT-bewerking in de MySql-trigger afbreken?

Ik kwam dit tegen en hoewel de oplossing werkt, kwam ik later tegen wat voor mij een betere oplossing lijkt. Ik vermoed dat dit geen optie was toen deze vraag oorspronkelijk werd beantwoord.

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$$

Dit geeft nu een leuke (of slechte!) foutmelding die je kunt vangen. Zie voor meer informatie hierover:http://dev.mysql.com/doc/refman/5.5/en/signal.html

Ik hoop dat dit iemand anders helpt!



  1. Hoe te updaten vanuit SELECT in SQL Server

  2. Hoe het mysql root-wachtwoord opnieuw in te stellen?

  3. Tabel DDL maken met Direct uitvoeren in Oracle Database Part 2

  4. SQRT() Voorbeelden in SQL Server