수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

java.sql.SQLException: ORA-00001: unique constraint () violated 오류인데요

초월

2023.04.01

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,?,?,?,?,?); 인서트로 업데이트해주는데요.
값넣고 빼기가 왜이리 안되는지 모르겠네요. 저 유니크 오류의 이유를 모르겠습니다. 알려주세요

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 이플

    내안의 나님.. 제가 글썼을때는 제가 샘님 아래였는데.. ㅋ 참고로 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을 사용하여 할당하는 방법도 있습니다만, 그건

번호 제 목 글쓴이 날짜
2694611 Flash Lite 2.1에서 BitmapData와 Matrix 지원안하나요? (3) 이플 2025-05-12
2694582 IE & 파이어폭스 (2) 흙이랑 2025-05-12
2694553 무비클립안의 duplicate 발동이 안돼네요; 딥보라 2025-05-12
2694523 자바 애플릿 질문좀 ^^ (6) 동이 2025-05-12
2694494 [질문] JAVA 또는 C++ 로 프로그램 개발시.. 레지스터리 등록 관련 의문점? (3) 우람늘 2025-05-11
2694469 익스6에서 css버그 나오는것 해결방법좀요 !!!! (6) 원술 2025-05-11
2694442 로컬에선 잘 나오는데 운영에 반영하면 이상하게 나와요. (8) 목화 2025-05-11
2694412 [질문] 이미지 로딩후 사이즈 조절할때 (1) 아담 2025-05-11
2694391 설치형 블로그 쓰시는 분들 어떤거 쓰세요?? (7) AngelsTears 2025-05-10
2694362 Microsoft SQL Server에서 서버만드는법 어둠 2025-05-10
2694333 for문으로 돌린 이름의 제어 (4) 레이 2025-05-10
2694308 이미지 css 도와주세요 ㅠㅠ (2) 애기 2025-05-10
2694223 [급질문]스크롤스파이의 offset값 진나 2025-05-09
2694195 li에 이미지 넣고 세로로 메뉴 구성하는 경우 (1) 예님 2025-05-09
2694167 canvas 질문요. (4) 찬늘봄 2025-05-08
2694136 왜 이렇게 나오는지 이해가 잘 가지 않네요. 부탁드리겠습니다... (2) 세련 2025-05-08
2694111 div , css 공부하고있는데요 잘모르겠어요.. 도와주세요 ㅠ_ㅠ (10) 모람 2025-05-08
2694035 작업관리자 창에.. CPU사용 현황처럼 만들고 싶습니다. (1) 다올 2025-05-07
2694004 Linux에서 java사용 (2) 한빛 2025-05-07
2693978 CS5.5 베타 버젼이라도 다운받을 수 있는 사이트 아세요? (4) 콩순 2025-05-07
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com