아래 에러 모두 '몰라서 보지 못했던 에러'들이다.
'그럼에도 불구하고' 뭘까 ~~ 하면서 아래 표정으로 찾아보는 습관을 길러보잣.
상황) BOOK 테이블에 INSERT를 통해 데이터를 넣는데 데이터가 들어가지 않는 상황
- 직접 데이터를 넣어주는 방법이 있지만 서버에서 '등록하기'를 해도 화면 출력도, DB 추가도 되지 않았다. 그래서 SQL식이 잘못되었는지 확인하기 위해 INSERT 식을 해보니 정말 추가가 안되던 것
BOOK_PK는 ID.
이미 ID로 33을 쓰고 있는 데이터가 있으니까 오류가 난거겠지
이번엔 BOOK_UK1 오류
테이블 속성을 봐보니 TITLE도 제약조건이 있었더랬다. 제목도 같은 값이 안되게 넣어주어야 했던 것.
- Unique Key (고유키)
BOOK 테이블에 시퀀스를 적용하고 있는 상황에서, INSERT로 ID를 직접 넣어주고 있는 상황이었다.
이렇게 하면 직접 ID를 차례대로 넣지 않는 이상 시퀀스가 자기 기능을 하지 못해서 등록/추가가 되지 않는 상황을 발생시키겠지.
->
1) 직접 손으로 넣어준 것들이 ~ 19번째까지 있었음.
2) SEQ 새로 작성.
이전거를 살리는 식으로 나가면 '19'로 설정하면 20부터 '자동적으로' ID가 증분되도록.
* '캐시없음'에 체크하는게 좋다.
->
브라우저에 추가된 데이터들이 나오게 됨.
페이징을 5로 해서 5권씩 보이게 했는데 이상하게... 정말 이상하게 4페이지에만 4권의 책이 보이는 것이었다.
아... 이건 도대체 뭐지???
이건 진짜... 누가 와서 봐도 이상하다고 느낄거야.
아니 1,2,3,5페이지는 정확하게 내가 코드 구현한대로 5페이지씩 나오는걸? 어쩜 딱 4페이지만 이래?
이건 정말 이상해...
-> 이런 생각에 사로잡혀서는 '문제를 찾아보고자 하는 생각'을 하지 못했는데... 사실 이건 힘들법도하긴한데... 'ID가 삭제될 수도 있는건데 ID를 기준으로 SQL식을 가지고 오도록 하면 빈 공백이 생길 수도 있겠다'는 생각까지 발전했으면 좋았을 것 같긴하다. (+ 그리고 공부해야하는 이유: https://ubermensch-with.tistory.com/287)
이렇게 ID로 가지고 오면 안된다.
쭉 - 끊임없이 가지고 올 수 있는 ROWNUM으로
-> 그럼 5개씩 정상적으로 나온다.
Q. ROWNUM하고 ID하고 (특별히 삭제하지 않는 이상) 같을 수 없을까. 왜 이리 뒤죽박죽이며, 왜 등록해서 올라가는게 맨 뒤로 되지 않는걸까? 이건 자고 알아보자... (a.m. 2:25)
개발하는 방법 (0) | 2021.06.16 |
---|---|
파이썬) IndentationError: expected an indented block (0) | 2021.06.13 |
톰캣 서버 "Several ports(8005, 8080) required by Tomcat v9.0 Server at localhost are already in use" 에러 해결 (0) | 2021.05.28 |
★ 에러 해결을 하는 나에게 주는 편지 (0) | 2021.05.26 |
"ORA-22858: 데이터유형의 변경이 부적당합니다" 에러 해결 (0) | 2021.05.15 |