2012-01-13 3 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_date. Код reservation связан с event, который имеет begin_date и end_date.

мне нужно проверить, что reserved_date включен (у = х < < = г) в begin_date и end_date этого конкретного event.

ответ

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

возвращает ошибку # 1064 на линии 6. Какие заявления я должен написать после того, как "IF id_event_var IS NULL THEN"? – Dave

+0

Напиши свой код здесь. Например, вы можете выбросить ошибку, например: «CALL unlnown_function(); – Devart

+0

Хорошо, давайте подумаем, что я хочу бросить обратную связь для этой ошибки, например, я хочу распечатать: «Извините, вы не можете». Как мне это сделать? – Dave

Смежные вопросы