문제

나는지 알고 싶어 그것은 좋은 아이디어를 잡는 예외에 따라 고유의 색인에서 sql java.

나를 잡으려고 예외는 다음과 같'중복 항목에 대한 1-0'그렇다면 다음을 처리 예외 그렇지 않으면 삽입 제대로 데이터베이스에 테이블?

도움이 되었습니까?

해결책

나는 당신을 말하지 않는 것,두 가지 이유:

  • 오류 메시지지 않: 오류 1062(23000):중복된 항목'xxx'에 대한 열쇠 1.당신은 항상 100%확실하는 키가 1?
  • 그것은 잠금에서 당신은 특정 데이터베이스는 공급업체

나는 그것을 찾을 간단하게 트랜잭션:

  • 에 대한 확인 행의 존재를;
  • 예외를 던지는 경우 행은 이미 존재;
  • 에 삽입합니다.

성능 문제:

두 번 측정,절단면.프로필 사용하는 특정 사용하는 경우.내 머리 위로 내가 말하는 것이 성능이 문제가 되지 않을 제외하고 무거운 db 시나리오에서 사용할 수 있습니다.

그 이유는 일단 당신이 수행 SELECT 이는 특정 행,그 데이터는 배치에서 데이터베이스의 캐시 및 즉시 사용 삽입 확인에 수행에 대한 인덱스 INSERT 문입니다.또한 유지하는 마음에서는 이러한 액세스를 백업하여 인덱스 결론에 이르게 성과가 문제가 되지 않습니다.

그러나 언제나 변함없이,마 측정합니다.

다른 팁

왜 안 모르겠어요. 삽입 전에 쿼리를 실행하는 것보다 더 효율적일 것입니다. 그래도 오류 메시지를 인식하지 않고 예외 오류 코드를 포착하는 것이 좋습니다.

대체 명령을 사용할 수 있습니다. 레코드의 존재에 따라 삽입/업데이트. 쿼리는 삽입/업데이트가 아닙니다. 주요 위반을 감지하면 무엇을하고 싶은지에 달려 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top