Как я могу исправить свой триггер, чтобы он мог скомпилироваться? - PullRequest
0 голосов
/ 07 октября 2018

У меня есть две таблицы:

  1. Boats (BUILDERNAME, MODEL, LENGTH_BY_FEET, BASE_PRICE)
  2. Pricechanges (MODEL, CHANGEDATE, OLDPRICE, NEWPRICE).

Мне нужно создать триггер, который при Base_Price таблицы Boats обновляется, добавляется строка в таблицу Pricechanges.

Вот что у меня есть

CREATE OR REPLACE TRIGGER PRICECHANGE  
  AFTER UPDATE OF BASE_PRICE ON BOATS   
  FOR EACH ROW
BEGIN
   IF UPDATING THEN
    INSERT INTO pricechanges (MODEL, CHANGEDATE, OLDPRICE, NEWPRICE)
    VALUES (model, SYSDATE, :old.base_price, :new.base_price)
END PRICECHANGE; 

Возникли проблемы.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 07 октября 2018

Вам не хватает точки с запятой и END IF:

CREATE OR REPLACE TRIGGER PRICECHANGE  
  AFTER UPDATE OF BASE_PRICE ON BOATS   
  FOR EACH ROW
BEGIN
   IF UPDATING THEN
     INSERT INTO pricechanges (MODEL, CHANGEDATE, OLDPRICE, NEWPRICE)
     VALUES (model, SYSDATE, :old.base_price, :new.base_price);
   END IF;
END PRICECHANGE;

Кроме того, так как это AFTER UPDATE триггер, проверка для IF UPDATING не нужна, но это ничего не повредит.

Удачи.

...