MySQL перед триггером - PullRequest
0 голосов
/ 13 января 2012

Я получил эти две таблицы:

   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 включено (y <= x <= z) в <code>begin_date и end_date этого конкретного event.

1 Ответ

0 голосов
/ 13 января 2012

Попробуйте этот триггер -

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...