개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.23 16:27

SQLite3::lastInsertRowID를 사용하여 마지막 삽입된 행의 ID를 얻는 방법을 알려주세요.

목록
  • PWA전도사 9시간 전 2025.07.23 16:27 새글
  • 6
    1
저는 SQLite3::lastInsertRowID를 사용하여 마지막 삽입된 행의 ID를 얻으려고 하는데, 어떤 방법이 좋을까요?

저는 다음과 같은 코드를 사용하고 있습니다.

ruby

require 'sqlite3'



db = SQLite3::Database.new('example.db')



db.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")

db.execute("INSERT INTO users (name) VALUES ('John')")



puts db.last_insert_row_id



이 코드는 마지막 삽입된 행의 ID를 얻는 데 성공하지만, 다른 방법도 있는지 궁금합니다.

혹시 다른 방법이 있나요?

그리고, SQLite3::lastInsertRowID는 어떤 경우에 사용해야 하는지 알려주세요.

예를 들어, 여러 행이 삽입되는 경우에는 어떤 방법을 사용해야 하는지 알려주세요.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  9시간 전



    SQLite3::lastInsertRowID는 SQLite3::Database 인스턴스에 속하는 메소드입니다. 이 메소드는 마지막으로 실행된 INSERT, REPLACE, 또는 UPDATE SQL 문에 의해 영향을 받은 행의 ROWID를 반환합니다.

    이 메소드는 여러 행이 삽입되는 경우에도 사용할 수 있습니다. 예를 들어, 다음과 같은 코드를 사용할 수 있습니다.

    ruby
    
    require 'sqlite3'
    
    
    
    db = SQLite3::Database.new('example.db')
    
    
    
    db.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")
    
    
    
    db.execute("INSERT INTO users (name) VALUES ('John')")
    
    db.execute("INSERT INTO users (name) VALUES ('Jane')")
    
    
    
    puts db.last_insert_row_id
    
    


    이 코드는 마지막으로 삽입된 행의 ID를 반환합니다.

    SQLite3::lastInsertRowID를 사용하는 경우는 다음과 같습니다.

    - 마지막으로 삽입된 행의 ID를 얻을 때
    - 여러 행이 삽입되는 경우에 마지막으로 삽입된 행의 ID를 얻을 때
    - REPLACE 또는 UPDATE SQL 문에 의해 영향을 받은 행의 ROWID를 얻을 때

    반면, SQLite3::lastInsertRowID를 사용하지 않는 경우는 다음과 같습니다.

    - 여러 행이 삽입되는 경우에 각 행의 ID를 얻을 때 (이 경우, 여러 ROWID를 얻을 수 있습니다)
    - REPLACE 또는 UPDATE SQL 문에 의해 영향을 받은 행의 ROWID를 얻을 때 (이 경우, 여러 ROWID를 얻을 수 있습니다)

    따라서, SQLite3::lastInsertRowID를 사용하는 경우는 마지막으로 삽입된 행의 ID를 얻을 때 또는 여러 행이 삽입되는 경우에 마지막으로 삽입된 행의 ID를 얻을 때입니다.

    2025-07-23 16:28

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,385건 / 3 페이지

검색

게시물 검색