Oracle - SQL - subselect로 삽입
저는 지금.ORA-00947: not enough values
아래 쿼리에서 다음과 같이 입력합니다.
insert into tableb
(colA, colb, colc, cold)
select
(select max(rec_no)+1 from tableb)
F2,
F3,
F4
from tablea;
삽입/선택 문에 대한 하위 쿼리를 포함하는 올바른 방법을 알려줄 수 있습니까?
감사해요.
쉼표 하나를 놓쳤을 뿐입니다.현 상태에서 오라클은 생각합니다.F2
는 하위 선택 항목의 이름입니다.
insert into tableb
(colA, colb, colc, cold)
select
(select max(rec_no)+1 from tableb) , -- comma here
F2,
F3,
F4
from tablea;
고유 ID를 생성하는 유일한 방법은 시퀀스를 사용하는 것입니다.
그 이유는.max()
"message"는 작동하지 않습니다. 트랜잭션이 다른 트랜잭션에서 커밋되지 않은 변경 사항을 보지 못합니다.따라서 두 개의 동시 트랜잭션이 동일한 값을 사용하게 될 수 있습니다.max()
그러면 중복 ID 값이 생성됩니다.
해당 사례의 시퀀스에서 값을 생성하려면 먼저 시퀀스를 생성해야 합니다.
create sequence seq_b;
그런 다음 선택한 문장에서 이 순서를 사용합니다.
insert into tableb
(colA, colb, colc, cold)
select seq_b.nextval,
F2,
F3,
F4
from tablea;
언급URL : https://stackoverflow.com/questions/13838951/oracle-sql-insert-into-with-sub-select
'programing' 카테고리의 다른 글
다른 디브 안에 3디브(좌/중심/우)를 정렬하는 방법은 무엇입니까? (0) | 2023.09.12 |
---|---|
npoi 수직 선형 중심 (0) | 2023.09.12 |
XMLHttpRequest Level 2 - 업로드가 완료되었는지 여부 확인 (0) | 2023.09.12 |
MariaDB 사용자 정의 변수에 휴지통 값이 있는 이유는 무엇입니까? (0) | 2023.09.12 |
'requestReview()'는 iOS 14.0에서 더 이상 사용되지 않습니다. (0) | 2023.09.12 |