2011-02-26 8 views
0

이것은 오라클의 첫 번째 시도입니다. 외래 키를 사용하고 싶습니다.오라클 10g 트리거가있는 문제

먼저 나는 자동 증가 ID로 일부 테이블을 만들 : 나는 studentid에 대한 동일한 자동 증가 트리거를 작성하려고

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 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 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; 

이 오류가 발생합니다 :

ERROR at line 2: PLS-00049: bad bind variable 'NEW.STUDNETID'

1. create trigger `studenti_tab_trigger` 
2. before insert on `studenti_tab` 
3. for each row 
4. begin 

트리거 위에 kruzky_tab 테이블의 트리거와 같은 로직을 가진다. 나쁜 무엇입니까? 감사.

create sequence stundenti_tab_seq (는 "N"너무 많은)

select studenti_tab_seq.nextval into :new.studnetid from dual; (시퀀스 이름 :

답변

1

당신이 당신의 식별자의 일부 잘못된 문자가있는 것처럼 보이는, 식별자 이름을 모두 입력 오류를 배제해야합니다 일치하지 않음, new.studnetid이 잘못되었습니다.)

+0

네, 맞습니다. 내 실수였습니다. –

관련 문제