Я не могу понять, как обновлять данные с помощью триггеров

#sql #oracle-sqldeveloper

#sql #oracle-sqldeveloper-разработчик

Вопрос:

 CREATE TABLE fav_sports 
(
    ID int,
    sport varchar(20)
);

CREATE TABLE try_outs 
(
    ID int
);

CREATE TRIGGER players 
BEFORE INSERT ON fav_sports 
FOR EACH ROW 
BEGIN
    INSERT INTO try_outs VALUES(NEW.ID);
END;
 

Всякий раз, когда я пытаюсь обновить «try_outs» с помощью триггера «players», я получаю сообщение об ошибке — «Оператор SQL игнорируется» и «столбец здесь не разрешен».

Пожалуйста, помогите.

Программа выдает ошибки при создании этого триггера.

Комментарии:

1. Пара вещей. 1) Пожалуйста, отредактируйте сообщение и отметьте конкретную платформу базы данных. 2) Пожалуйста, укажите ваш оператор insert. 3) Хорошей привычкой всегда является явный список столбцов в инструкции insert. Это сэкономит вам время и разочарование в будущем.

Ответ №1:

Небольшая синтаксическая ошибка. Изменить:

 NEW.ID
 

Для:

 :NEW.ID
 

Итак, полная строка выглядит так:

 INSERT INTO try_outs VALUES(:NEW.ID);
 

Смотрите живую демонстрацию.