java.sql.SQLException: ORA-00001: unique constraint () violated 오류인데요
초월
pre도대체가 뭐가 문제인것인지... 에러가 나네요. 데이터베이스 에러라고 하는데 테이블 만든거에는 별 문제 없어보이는데 말이죠
저번에도 insert할때 중복오류가 계속 나서 기본키를 disable로 했다는..
그랬더니 데이터가 똑같은게 2개가 들어가버리고..
이 문제를 한큐에 해결 할 수 없을까요? 중복되었다고 하는거 같은데.기본키가 중복되있지 않습니다만..
그 전에 인서트시에도 왜 디비에 같은 값이 2개나 들어가는건지도 아직 못풀었고요.
create table re_board (
b_id number(5) primary key,
pwd varchar2(20) not null,
b_name varchar2(20) not null,
b_email varchar2(20) not null,
b_title varchar2(80) not null,
b_content varchar2(2000) not null,
b_date date default sysdate,
b_hit number(5) null,
b_ip varchar2(15) null,
ref number(5) null, step number(5) null, anslevel number(5) null
)
이런식으로 테이블 생성했는데요..
쓰기 게시판이고요string sql = select max(b_id), max(ref) from re_board;로 글번호, 참조번호 구하고
다시 sql = insert into re_board values(?,?,?,?,?,?,sysdate,?,?,?,?,?); 인서트로 업데이트해주는데요.
값넣고 빼기가 왜이리 안되는지 모르겠네요. 저 유니크 오류의 이유를 모르겠습니다. 알려주세요
-
이플
내안의 나님.. 제가 글썼을때는 제가 샘님 아래였는데.. ㅋ 참고로 pstmt.setInt(1, b_id) 이걸 진작에 뺐는데도 안되네요. 제가 궁금한건 왜 마지막 11번째 levels가 안되냐는거에요. 그리고 바로 밑에 업데이트도 안먹고.. 계속 catch로 빠집니다.. 답답하네요..
-
샤인
샘님보다 늦었네; 몇초차이일까? ㅋㅋ
-
움찬
select sql : select max(b_id), max(ref) from re_board
id : 1
ref : 0
ref : 1
sql : insert into re_boardvalues(b_id.NEXTVAL,?,?,?,?,?,sysdate,?,?,?,?,?)
1 : q
2 : q
3 : q
4 : q
5 : q
6 : 0
7 : 0
8 : 127.0.0.1
9 : 1
10 : 0
java.sql.SQLException: 부적합한 열 인덱스
-
길가온
제가 보기엔 pstmt.setInt(1, b_id)이것이 빠져야 한다고 생각합니다. 왜냐하면 오라클에서 b_id의 컬럼에 b_id.NEXTVAL을 통해 자동으로 넣어주기 때문이지요
pstmt.setInt(1, b_id)를 지우시고 그 다음라인의 pstmt.setString(2, pwd)를 pstmt.setString(1, pwd)로 하나씩 줄여 변환시키신 후 executeUpdate해보심이 어떠신지요?
그러시면 아마도 될거 같습니다만.. (안되면 -
good
? 표 갯수는 10개 인데..
왜 prepareStatement 에 set 할때 11, 12 가 나오는거죠?
? 갯수랑랑 일치 해야 되는거 아닌가요? -
달달항사탕
sql = \insert into rep_board values(b_id.nextval,?,?,?,?,?,sysdate,?,?,?,?,?)\;
\t\tpstmt = con.prepareStatement(sql);
pstmt.setInt(1, b_id);
.
.
-
옆집오빠야
음..제 생각에는....
간단하게 해를 들어서 현재 id의 max값이 10 이라고 가정하겠습니다.
1. A Thread max(id)의 값을 가져왔습니다.(값은 10이겠죠 ) id에 +1 을 해서 insert 하려는 시점에..
2. B Thread가 치가 들오옵니다. max(id)의 값을 가져왔습니다.(값은 10이겠죠 )
3. 이제 A Thread가 다시 insert 작업을 진행합니다..(값은 11이겠죠)
4. B Thread도 값을 1증가후 작업을 -
콩알녀
b_id를 sequence로 고치고 insert와 select문을 고쳤는데 셀렉트문이 잘못된건지 (셀렉트는 별다르게 안고침) 열인덱스가 부적합하다고 나옵니다.\t
\tString sql = \select max(b_id), max(ref) from rep_board \;
\tpstmt = con.prepareStatement(sql);
\t\trs = pstmt.executeQuery();
\t\tif(rs.next()){
\t\t\tb_id = rs. -
아잉누님
다시 말씀 드리지만, 세션값으로 넣는건 많이 비추천입니다. 서버에 걸리는 과부하가 매우 크기 때문이죠.
혹시나 해서 sequence 생성하는 것도 같이 알려드립니다.
create sequence b_id increment by 1 start with 1;
sequence를 만드신다면, insert와 select쿼리문도 각각 달라지겠죠
역시 마찬가지로 허접한 팁입니다. 태클 마구마구 환영^^ -
한봄찬
저도 초보인지라 정확히는 알 수 없으나(틀리면.... 부끄부끄;), ORA-00001에러는 기본키(Primary Key)값이 중복되는 경우에 발생하는 에러라고 알고 있습니다. 기본키 값을 number로 설정하셨으니, 해당 키 값을 웹에서 넣어주는 방식이 아닌(웹에서 넣으면 중복되는 값이 들어갈 염려가 있죠), sequence로 처리하는 방법이 어떠신지요?
아니면 해당 jsp페이지에서 세션값이나 hashmap을 사용하여 할당하는 방법도 있습니다만, 그건
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700452 | c언어에서... 자료형 구분.... (3) | 시내 | 2025-07-05 |
2700422 | 버전에 관해 질문 | 라온제나 | 2025-07-04 |
2700393 | mysql이 갑자기!!!!!!!!!!!!!!!에러가;; (2) | 소미 | 2025-07-04 |
2700359 | 3.0 ) SimpleButton 상태 강제 변경 (3) | 희선 | 2025-07-04 |
2700304 | ie8 전용핵 문의 (3) | 여자 | 2025-07-03 |
2700281 | 이런경우 어떻게 코딩해야 표준에 따르는건가요? (6) | 늘솜 | 2025-07-03 |
2700230 | 질문이여 ! | 뿡뿡몬 | 2025-07-03 |
2700205 | 액션스크립트책 좀 추천해주세요. (10) | 화이트캣 | 2025-07-02 |
2700173 | 자바 소스인데 어떤게 에러인지..? (1) | 호빵녀 | 2025-07-02 |
2700142 | 하단이 붙어있는 가변 레이아웃구조 질문드립니다. | 이플 | 2025-07-02 |
2700089 | 이미지를 사다리꼴로 비틀게 하는 액션코드가 있나요? (4) | 여름 | 2025-07-01 |
2700033 | 배경에 그라데이션을 넣으려고 하는데요.. (4) | 화이티 | 2025-07-01 |
2700005 | [질문] TextField 객체의 실제 높이 알아오는 방법 ? | 천사의눈물 | 2025-07-01 |
2699978 | FileReferenceList를 이용하여 업로드시 자꾸 실행속도가 느리다는 팝업이... (10) | 데이비드 | 2025-06-30 |
2699944 | 자바스크립트가 많은 사이트는... (6) | 희나리 | 2025-06-30 |
2699918 | 브라우저마다 다른 input과 텍스트 정렬 (3) | 늘봄 | 2025-06-30 |
2699887 | 동적텍스트를 그래픽으로?? (2) | 족장 | 2025-06-30 |
2699862 | scope넣기 (1) | 아인 | 2025-06-29 |
2699835 | exe로 만드는 방법을....알려주세요.. (5) | 방방 | 2025-06-29 |
2699809 | 롤오버할때 백그라운드 이미지로할때 alt설명은 어떻게해야하죠?..ㅠ (4) | 반혈 | 2025-06-29 |