这是我第一次尝试使用Oracle我想使用外键。
首先我创建一些带有自动增量ID的表:
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
)
我尝试为studentid创建相同的自动增量触发器:
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
表中的触发器具有相同的逻辑。
有什么不好?感谢。
答案 0 :(得分:1)
请务必排除标识符名称的所有拼写错误,看起来您的标识符中有一些错误的字符:
create sequence stundenti_tab_seq
(“过多”)
select studenti_tab_seq.nextval into :new.studnetid from dual;
(序列名称不匹配,new.studnetid
错误)