shnozolla
shnozolla

Reputation: 468

mysql trigger not working?

I am trying to create a trigger to insert a new row conditionally based on an insert on another table...I can't seem to nail the syntax. Here is what I have thus far:

DELIMETER $$
CREATE TRIGGER overPricedCar
    AFTER INSERT ON cars
    FOR EACH ROW
    BEGIN   
        IF (new.sellPrice > '80000' )THEN
        INSERT INTO listings VALUES(new.carName,'GOLD','0',' ');
        END IF;
    END$$
DELIMETER ;

For some reason I keep getting an error, they syntax seems to be OK, I'm not sure where I may have gone wrong.

EDIT

After correcting the typo, the trigger 'works'.

I have added a comment to be output when the trigger happens. I have tested it, and the output message gets printed to the screen but the trigger does not actually complete the inserts:

DELIMITER $$
CREATE TRIGGER overPricedCar
    BEFORE INSERT ON cars
    FOR EACH ROW
    BEGIN   
        IF (new.sellPrice > '80000' )THEN
        INSERT INTO listings VALUES(new.carName,'GOLD','0',' ');
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "New Gold car!"; // this line throws it off
        END IF;
    END$$
DELIMITER ;

Where can I place the messages I want to be printed to the screen when this trigger runs?

Upvotes: 2

Views: 3688

Answers (1)

Marc B
Marc B

Reputation: 360862

Typo:

DELIMETER
     ^--- should be an I: DELIMITER

Upvotes: 5

Related Questions