2013-10-07 3 views
1

Я пытаюсь создать простую базу данных в свое время, прежде чем мой курс SQL для бизнеса начнет лучше понимать несколько концепций, так как я начинаю бороться. Я хочу создать триггер AFTER на моей таблице Hotel, который удаляет любые записи из таблицы Rooms, которые соответствуют (: old.HOTEL_ID). Я читал триггеры онлайн, но мне все еще сложно понять, как закодировать тело моего триггера. Я использую Oracle, потому что мне кажется более комфортным для меня в моей неопытности. Я надеялся, что здесь сообщество может дать мне некоторое представление об этом.Создание после триггера

Я попытался

CREATE TRIGGER tblHotel_T1 
    AFTER DELETE ON tblHotel 
    FOR EACH ROW 

И я имел

DELETE FROM tblrooms 
    WHERE hotHotel_ID=:old.hotHotel_ID; 

Я просто не уверен, как вводить триггер в Oracle, так как я первый начал использовать SQL Studio Manager. Хотя Oracle кажется намного проще, я не использую пользовательский интерфейс.

Затем Oracle поставляет поле «КОГДА», а затем поле «Триггерное тело». Вот где я запутался, потому что я не уверен, как ввести все это.

ответ

1

Если вы публикуете то, что вы уже пробовали, это поможет нам помочь вам, показывая нам, где вы ошибетесь.

Это звучит, как спусковой крючок вы хотите что-то вроде

CREATE OR REPLACE TRIGGER trg_hotel_del 
    AFTER DELETE ON hotel 
    FOR EACH ROW 
BEGIN 
    DELETE FROM rooms 
    WHERE hotel_id = :old.hotel_id; 
END; 

Я предполагаю, что ваша цель состоит в том, чтобы создать триггер, который срабатывает после операции удаления (это будет казаться странным, чтобы удалить все номера, когда вы вставил или обновил строку в таблице HOTEL).

Конечно, на самом деле вы создадите ограничение внешнего ключа, чтобы обеспечить его выполнение, а не создавать триггер.

+0

Нужно ли мне предложение When? –

+0

@ LynetteShatto - Не основано ни на чем, что я вижу в вашем вопросе, нет. Вы хотите запускать триггер только в определенных ситуациях, когда строка удаляется из 'hotel'? Если да, то каковы эти ситуации? –

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