2012-01-13 70 views
0

之前,我有這兩個表:MySQL的觸發

CREATE TABLE `reservation` (
    `id_reservation` int(11) PRIMARY KEY, 
    `reserved_date` date NOT NULL, 
    `id_event` int(11) NOT NULL, 
    FOREIGN KEY (`id_event`) REFERENCES `event` 
    ) 

    CREATE TABLE `event` (
    `id_event` int(11) PRIMARY KEY, 
    `begin_date` date NOT NULL, 
    `end_date` date NOT NULL, 
    ) 

基本上我插入reservation具有單reserved_datereservationevent有關,其具有begin_dateend_date

我需要檢查reserved_date包含(Y < = X < = Z)在begin_date和該特定eventend_date

回答

0

試試這個觸發器 -

CREATE TRIGGER trigger1 
    BEFORE INSERT 
    ON reservation 
    FOR EACH ROW 
BEGIN 
    DECLARE id_event_var INT DEFAULT NULL; 
    SELECT id_event INTO id_event_var FROM `event` WHERE id_event = new.id_event AND new.reserved_date >= begin_date AND new.reserved_date <= end_date; 
    IF id_event_var IS NULL THEN 
    ... -- wrong date! 
    END IF; 
END 
+0

它返回第6行 什麼樣的聲明做我後寫的「IF id_event_var爲null,則」錯誤#1064? – Dave 2012-01-14 13:26:34

+0

在這裏寫你的代碼。例如,你可能會拋出一個錯誤,例如:'CALL unlnown_function();' – Devart 2012-01-16 08:42:55

+0

好吧,讓我們想想爲這個錯誤提出反饋意見,例如我想打印出來:「對不起,你不能」。我該怎麼做? – Dave 2012-01-18 17:18:48