SQLite 데이터베이스가 있는데 INSERT OR IGNORE
쿼리를 사용하고 있습니다. 기본 키 및 또 다른 고유 한 열로 intintrereation int있는 테이블이 있습니다. 내 질문은, SQLite는 레코드가 이미 존재하는지 여부를 확인하여 무시할지 여부를 알 수 있도록하는 방법입니다. 기본 키를 먼저 스캔 한 다음 다른 고유 한 열을 스캔합니까? 그렇다면 일부 쿼리의 기본 키 앞에 고유 한 열을 비교할 수 있습니까? 또한 열이 고유 한 경우 이미 인덱싱되어 있습니까?SQL은 레코드가 존재하는지 어떻게 확인합니까?
2
A
답변
2
UNIQUE 제약 조건은 인덱스를 사용하여 구현되므로 UNIQUE 열은 이미 인덱싱되어 있습니다.
INSERT 또는 IGNORE를 평가할 때 테이블의 UNIQUE 제약 조건이 INSERT 문에 위배되면 OR IGNORE가 대신 사용됩니다. 평가 순서는 기능적 관점에서 중요하지 않으며 성능에 미치는 영향이 미미해야합니다. 예측의 순서는 쿼리 최적화 프로그램에 의해 처리되지만, 그렇지 않은 경우 성능 적중률은 작아야합니다.
1
얼마나 깊게 가고 싶은가에 따라 downloading the SQLite3 source code을 추천하고 "고유"및 "제약 조건"과 같은 용어를 검색하기 시작할 수 있습니다. 질문에 대한 일부 답변은 소스를 통해 몇 분.
코드는 인 것으로 보입니다. 비정상적으로 잘 문서화 된입니다. SQLite를 많이 사용한다면 제공되는 주석을 읽는 것이 좋지 않을 수도 있습니다. 예상보다 많은 통찰력을 얻을 수 있습니다.
+0
제안 해 주셔서 감사합니다. 코드를 통해 자주 검색 할 때, 적절한 문서가 없기 때문에 혼란스러워합니다. 다른 흥미있는 팁을 위해 이것을 통하여 모양을 가져갈 것이다. – TryNCode
관련 문제
- 1. 주어진 필터 집합과 일치하는 레코드가 하나 이상 존재하는지 어떻게 확인합니까?
- 2. 웹 페이지가 자바와 함께 존재하는지 어떻게 확인합니까?
- 3. 시퀀스가 Oracle 11g에 존재하는지 여부를 어떻게 확인합니까?
- 4. Android SQL : 데이터베이스에 레코드가 존재하는지 확인하십시오.
- 5. WordPress 페이지에 다른 페이지가 조상으로 존재하는지 어떻게 확인합니까?
- 6. Ruby & Datamapper는 레코드가 존재하는지 확인하고 어디에서?
- 7. 는 어떻게 확인합니까 1
- 8. 레코드의 키가 있는지 어떻게 확인합니까?
- 9. SQL은
- 10. null에 대한 datareader를 어떻게 확인합니까?
- 11. 데이터베이스가 존재하는지 확인
- 12. NSLog 출력을 어떻게 확인합니까?
- 13. 삭제할 지점을 어떻게 확인합니까?
- 14. PHP에서 호스트를 어떻게 확인합니까?
- 15. GNUSim8085에서 결과를 어떻게 확인합니까?
- 16. OAuth 요청을 어떻게 확인합니까?
- 17. SQLite3 구문을 어떻게 확인합니까?
- 18. 창이로드되고로드가 완료되었는지 어떻게 확인합니까?
- 19. 네트워크 연결을 어떻게 확인합니까?
- 20. 파일 형식을 어떻게 확인합니까?
- 21. 값이 URL인지 어떻게 확인합니까?
- 22. publish_stream에서 한도는 어떻게 확인합니까?
- 23. CGPoint가 초기화되었는지 어떻게 확인합니까?
- 24. 병합이 필요한지 어떻게 확인합니까?
- 25. IsolatedStorageFile이 있는지 어떻게 확인합니까?
- 26. OpenMPI의 버전을 어떻게 확인합니까?
- 27. AJAX는 어떻게 사용자를 확인합니까?
- 28. 파일이 업로드되었는지 어떻게 확인합니까?
- 29. 어떻게 Clearcase에서 병합을 확인합니까?
- 30. PrintDialog.AllowCurrentPage의 값을 어떻게 확인합니까?
감사합니다. 중요한 성능 차이가 있는지 확실하지 않았습니다. – TryNCode