Я пытаюсь добавить триггер перед удалением пользователя (из таблицы пользователей (id, name, ...)), поэтому я также могу удалить телефонные номера пользователя (из user_phone (user_id, телефон) стол):Oracle Trigger before delete
CREATE TRIGGER users_before_delete
BEFORE DELETE
ON users
FOR EACH ROW
BEGIN
DELETE FROM user_phones WHERE user_id = :old.id;
END;
/
Однако я получаю эту ошибку: Внимание: Триггер создается с ошибками компиляции.
Я думаю, что это имеет какое-то отношение к: old.id?
EDIT: Даже с предупреждением, похоже, работает. Когда я удаляю пользователей, он также удаляет номера телефонов.
Спасибо.
Вы можете запустить 'шоу errors' в SQLPlus и разделить вывод Здесь пожалуйста? – Mureinik
таблица 'users_phone' (определенная в тексте вверху) не равна' user_phones' (таблица определена при удалении) ... Что это? должен 'delete FROM USERS_Phone, где user_Id =: old.id;'? Выполняет ли 'SELECT * из all_Tables, где table_Name = 'USER_PHONES' 'возвращает запись? как насчет 'SELECT * FROM ALL_TABLES WHERE TABLE_NAME = 'USERS_PHONE'' – xQbert
Даже с предупреждением, похоже, работает. Когда я удаляю пользователей, он также удаляет номера телефонов. –