perl
코드는 DBI 모듈을 사용하여 sqlite 데이터베이스에 삽입하는 동안 PRIMARY KEY CONSTRAINT
때문에 레코드가 SQL 문에 의해 무시되는 경우에도 영향을받는 행 수는 1입니다. ID & NAME
복합 차에게 내가 여기서 뭐하는 거지 잘못된 키 -삽입 또는 무시한 후 영향을받는 행 수
ID NAME
1 AAA
1 BBB
1 AAA
2 BBB
2 BBB
아무것도있는 곳은 항상 데이터 세트 아래에 나에게 1과 $ 행을 제공
my $stmt = 'INSERT OR IGNORE INTO table1 (ID, Name) VALUES (?,?)';
my $sth = $dbh->prepare($stmt);
$sth->bind_param(1, $id, SQL_VARCHAR);
$sth->bind_param(2, $name, SQL_VARCHAR);
my $row = $sth->execute() or die $DBI::errstr;
print "Row affected for id[$id]- $row\n";
. IGNORE의 경우 0이고 INSERTION의 경우 1 인 값 0f $ row를 기반으로 다른 코드 섹션을 실행해야합니다.
다른 방법으로 처리 할 수 있습니까?
관련 항목 : http://stackoverflow.com/questions/12105198/sqlite-how-to-get-insert-or-ignore-to-work – mob
두 번째 @ mob의 추천입니다. 어리석은 것 같지만, INSERT OR IGNORE 결과를 저장하기 위해서는 2 번째 테이블을 사용해야합니다. 그런 다음 두 번째 테이블에서'*'를 선택하면 INSERT OR IGNORE의 영향을받는 행을 계산할 수 있습니다. – jimtut
Perl에 대해서는 잘 모르겠지만 다른 곳에서는 시도해 보았습니다. SQLite는 변경 사항을 올바르게 계산합니다. 테이블 정의를 표시하십시오. –