상위의 기본 키는 customerNo = customerSeq.nextval 시퀀스에서 해당 값을가집니다. 그 값을 자식 테이블에 외래 키로 삽입하려면 어떻게해야합니까?Oracle 기본 키 참조
계정 값 (accountSeq.nextval, '500', customerSeq.nextval, 'S', 'O')에 삽입;
작동하지 않으며 오류가 있습니다.
상위의 기본 키는 customerNo = customerSeq.nextval 시퀀스에서 해당 값을가집니다. 그 값을 자식 테이블에 외래 키로 삽입하려면 어떻게해야합니까?Oracle 기본 키 참조
계정 값 (accountSeq.nextval, '500', customerSeq.nextval, 'S', 'O')에 삽입;
작동하지 않으며 오류가 있습니다.
currval
을 사용하면 마지막으로 생성 된 값을 얻을 수 있습니다.
insert into account
(account_id, some_col, customer_id, col3, col4)
values
(accountSeq.nextval,'500',customerSeq.currval,'S','O');
이 명시 적으로 삽입 테이블에 테이블의 열을 나열하는 좋은 코딩 스타일입니다. 또한 테이블 정의를 표시하지 않았지만 숫자에 문자열 리터럴을 사용하지 마십시오 '500'
은 문자열입니다. 500
은 숫자입니다.
자세한 내용은 사용 설명서에 있습니다 http://docs.oracle.com/cd/E11882_01/server.112/e26088/pseudocolumns002.htm#i1009336
당신이 순서가있는 테이블에 레코드를 삽입 할 때, 당신은 PL/SQL 변수로 사용되는 값을 검색하려면 "반환"절을 사용하고 사용 저것은 아이 기록을 위해.
insert into
my_table (
id,
col1,
...)
values (
my_table_seq.nextval,
'A',
...)
returning id
into my_package.my_table_id;
insert into
child_table (
id,
my_table_id,
...)
values (
child_table_seq.nextval,
my_package.my_table_id,
'B',
...)