2014-05-01 4 views
1
CREATE TABLE reservation(
    reserv_id int, 
    reserv_date numeric(8,0), 
    start_date numeric(8,0) NOT NULL, 
    end_date numeric(8,0) NOT NULL, 
    payment ENUM('Cash','Credit Card','Check'), 
    PRIMARY KEY(reserv_id), 
    CHECK (reserv_date<start_date), 
    CHECK (start_date<end_date) 
)ENGINE=InnoDB; 


delimiter // 
create trigger date_check 
before insert on reservation 
for each row 
begin 
    IF ((new.reserv_date > new.start_date) or (new.start_date > new.end_date)) THEN SIGNAL 'error message'; 
    END IF; 
end;// 
delimiter ; 

Je suis en train de créer ce déclencheur dans MySQL, mais il ne cesse de me jeter l'erreur suivante:MySQL déclenche la syntaxe

erreur 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de '' message d'erreur ''; FIN SI; fin 'à la ligne 5

Quelle est mon erreur?

Répondre

1
IF ((new.reserv_date > new.start_date) or (new.start_date > new.end_date)) THEN 
    SIGNAL SQLSTATE '45000' 
    SET MESSAGE_TEXT = 'error message'; 

Lisez le documentation pour plus de détails.