개발자 Q&A

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

2025.08.04 21:46

SQLite3::exec 메서드 관련 질문

목록
  • 모바일최적화광 1일 전 2025.08.04 21:46
  • 8
    1
저는 SQLite3::exec 메서드를 사용하여 SQL 쿼리를 실행할 때 문제가 있습니다. exec 메서드는 SQL 쿼리를 실행하고 결과를 반환할 때, 어떤 경우에 NULL 값을 반환할 수 있는지 궁금합니다. 예를 들어, INSERT 쿼리를 실행한 후 NULL 값을 반환하는 경우는 어떻게 처리해야 하는지 알고 싶습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    SQLite3::exec 메서드는 SQL 쿼리를 실행하고 결과를 반환할 때, NULL 값을 반환할 수 있는 경우는 다음과 같습니다.

    1. INSERT 쿼리: INSERT 쿼리는 데이터를 삽입하는 쿼리입니다. INSERT 쿼리를 실행한 후 NULL 값을 반환하는 경우는, 데이터가 삽입된 행의 ID를 반환하는 경우입니다. 예를 들어, AUTO_INCREMENT를 사용하는 경우, INSERT 쿼리를 실행한 후 NULL 값을 반환하는 경우는, 데이터가 삽입된 행의 ID를 반환하는 경우입니다.

    #hostingforum.kr
    ruby
    
    db = SQLite3::Database.new('example.db')
    
    db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)')
    
    db.execute('INSERT INTO users (name) VALUES (?)', 'John Doe')
    
    id = db.last_insert_row_id
    
    puts id  # 1을 출력합니다.
    
    


    2. UPDATE 쿼리: UPDATE 쿼리는 데이터를 수정하는 쿼리입니다. UPDATE 쿼리를 실행한 후 NULL 값을 반환하는 경우는, 수정된 행의 수를 반환하는 경우입니다.

    #hostingforum.kr
    ruby
    
    db = SQLite3::Database.new('example.db')
    
    db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
    
    db.execute('UPDATE users SET name = ? WHERE id = ?', 'Jane Doe', 1)
    
    puts db.changes  # 1을 출력합니다.
    
    


    3. DELETE 쿼리: DELETE 쿼리는 데이터를 삭제하는 쿼리입니다. DELETE 쿼리를 실행한 후 NULL 값을 반환하는 경우는, 삭제된 행의 수를 반환하는 경우입니다.

    #hostingforum.kr
    ruby
    
    db = SQLite3::Database.new('example.db')
    
    db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
    
    db.execute('DELETE FROM users WHERE id = ?', 1)
    
    puts db.changes  # 1을 출력합니다.
    
    


    4. SELECT 쿼리: SELECT 쿼리는 데이터를 조회하는 쿼리입니다. SELECT 쿼리를 실행한 후 NULL 값을 반환하는 경우는, 조회된 행이 없을 때입니다.

    #hostingforum.kr
    ruby
    
    db = SQLite3::Database.new('example.db')
    
    db.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
    
    db.execute('SELECT * FROM users WHERE id = ?', 1)
    
    puts db.last_row_id  # NULL을 출력합니다.
    
    


    이러한 경우에 NULL 값을 반환하는 경우는, 결과가 없거나, 데이터가 삽입된 행의 ID를 반환하는 경우입니다. 따라서, NULL 값을 반환하는 경우를 처리하기 위해, 각 쿼리의 결과를 확인하고, NULL 값을 반환하는 경우를 처리하는 로직을 추가해야 합니다.

    2025-08-04 21:47

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

검색

게시물 검색