ТРИГГЕРЫ ДЛЯ АВТО-УЧЕТА - PullRequest
       26

ТРИГГЕРЫ ДЛЯ АВТО-УЧЕТА

0 голосов
/ 23 января 2020

У меня есть Таблица транспортных средств, первичный ключ которой Vehicle_No имеет тип Varchar2, поэтому я сделал триггер для автоматического увеличения, но он показывает ошибки

create sequence seq start with 1000 increment by 1;

create   or replace trigger vehicles
Before  Insert On Vehicle
For  Each Row
If (:New.Vehicle_No is NULL)
Then
Select seq.nextval INTO :New.Vehicle_No from dual;
End if;
End;

1 Ответ

1 голос
/ 23 января 2020

Отсутствующие части в синтаксисе (begin); должно быть

CREATE OR REPLACE TRIGGER vehicles
   BEFORE INSERT
   ON Vehicle
   FOR EACH ROW
BEGIN
   IF :New.Vehicle_No IS NULL
   THEN
      SELECT seq.NEXTVAL INTO :New.Vehicle_No FROM DUAL;
   END IF;
END;

Кроме того, вроде бы все в порядке. Хотя, если вы используете последовательность (которая является number), почему столбец первичного ключа varchar2?

...