
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