
SQLite3::changes 메서드는 현재 세션에서 수행된 변경 사항의 수를 반환합니다. 이 메서드는 메모리에서 데이터를 저장하는 경우에만 정확한 데이터를 반환합니다.
파일에 저장된 데이터베이스의 경우, 변경 사항은 디스크에 저장되지 않기 때문에 changes 메서드는 항상 0을 반환합니다.
이러한 현상은 SQLite3::changes가 파일에 저장된 데이터베이스의 변경 사항을 정확히 반환하지 않는다는 것을 의미하지 않습니다.
대신, 변경 사항이 디스크에 저장되지 않았기 때문에 changes 메서드는 0을 반환하는 것입니다.
SQLite3::changes 메서드를 사용하여 파일에 저장된 데이터베이스의 변경 사항을 확인하려면, 변경 사항을 디스크에 저장한 후에 changes 메서드를 호출해야 합니다.
예를 들어, 다음과 같이 변경 사항을 디스크에 저장한 후에 changes 메서드를 호출할 수 있습니다.
#hostingforum.kr
ruby
db.execute("COMMIT")
puts db.changes
이러한 코드는 변경 사항을 디스크에 저장한 후에 changes 메서드를 호출하여 정확한 데이터를 반환합니다.
2025-05-15 05:02