'현재 테이블'에 레코드가 없는 경우에만 'new_table'에 INSERT를 스크랩합니다.
P粉122932466
P粉122932466 2024-03-29 19:36:16
0
1
397

웹사이트 스크래핑을 시도해 봤습니다. 현재 데이터베이스 테이블에서 데이터를 성공적으로 스크랩했습니다. 하지만 "현재 테이블"에 레코드가 없는 경우에만 "new_table"을 삽입하고 싶습니다

내 코드는 (파이프라인)입니다

으아아아

제대로 작동하지 않고 오류가 납니다.

으아아아

고유한 product_id가 있습니다.

현재 테이블에 product_id가 없으면 이 product_id를 "new_products"에 삽입하세요

이걸 어떻게 만드나요?

감사합니다.

최종 편집: 이 오류가 발생합니다.

으으으으

P粉122932466
P粉122932466

모든 응답(1)
P粉278379495

존재하지 않는 경우에만 삽입하려는 경우에는 하려는 작업을 수행할 필요가 없습니다. 모두 선택하고 원하는 것이 있는지 확인할 필요가 없습니다.

필요한 것은 표 2의 produc_id에 대한 고유 인덱스

를 만드는 것입니다.

그런 다음 코드를 다음으로 변경하세요.

으아악

ON DUPLICATE KEY를 사용하는 경우 중복 행(이미 기존 product_id)이 발견되면 시스템은 product_id를 동일한 product_id로 업데이트하려고 시도하므로 적용되지 않습니다.

autocommit=True로 설정하면 해당 커밋을 삭제할 수 있습니다.

편집

댓글에서 말씀하신 것처럼 테이블에 없는 경우에만 새 테이블에 삽입해야 하는 경우 코드를 다음과 같이 변경할 수 있습니다.

매개변수의 값을 변경하기 때문에 old_ids = [row[0] for row incursor.fetchall()]row 행의 변수 이름을 변경해야 합니다. 2. 문제는 if 문에 있습니다. product_id 변수가 존재하지 않으므로 수정해야 합니다

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿