это моя первая попытка использования Oracle. Я хотел бы использовать внешний ключ.
Сначала я создаю таблицу с идентификатором автоинкремента:
create table kruzky_tab(
kruzokid number primary key not null,
meno varchar2(50) not null,
pocet number not null
)
create sequence kruzky_tab_seq
start with 1
increment by 1
nomaxvalue;
create trigger kruzky_tab_trigger
before insert on kruzky_tab
for each row
begin
select kruzky_tab_seq.nextval into :new.kruzokid from dual;
end;
Затем я создаю вторую таблицу с внешним ключом.в таблице выше:
create table studenti_tab(
studentid number primary key not null,
meno varchar2(50) not null,
priezvisko varchar2(50) not null,
email varchar2(50) not null,
kruzokid references kruzky_tab
)
Я пытаюсь создать тот же триггер автоинкремента для студента:
create sequence stundenti_tab_seq
start with 1
increment by 1
nomaxvalue
create trigger studenti_tab_trigger
before insert on studenti_tab
for each row
begin
select studenti_tab_seq.nextval into :new.studnetid from dual;
end;
Я получаю эту ошибку:
ОШИБКА в строке 2:PLS-00049: переменная неверного связывания 'NEW.STUDNETID'
1. create trigger `studenti_tab_trigger`
2. before insert on `studenti_tab`
3. for each row
4. begin
Триггер имеет ту же логику, что и триггер в таблице kruzky_tab
вверху.Что такое плохо?Благодаря.