- [Python]Sqlite3에서 insert 후에 cur.lastrowid 출력 목차
power-of-optimism.tistory.com/90
위 블로그에서 다수의 초기 데이터를 입력한 후
print(cur.lastrowid) 에서 None 값이 출력되어 많이 고민을 하였다
결론은 executemany에서는 None을 출력한다.
이것을 고민한 이유는 정말로 insert가 성공하였는지 판단하기 위해서다
sql = ''' INSERT INTO thunder(name,score) VALUES(?,?) '''
conn = sqlite3.connect(database)
with conn:
cur = conn.cursor()
cur.execute(sql, task)
conn.commit()
print(cur.lastrowid)
위와 같이 하나에 대한 데이터를 insert 명령을 사용하면
정상적으로 마지막으로 입력된 row의 번호가 출력된다.
단, insert명령을 수행한 후에 하여야 한다.
아래처럼 with 문 밖에 사용하면 None 이 출력된다
sql = ''' INSERT INTO thunder(name,score) VALUES(?,?) '''
conn = sqlite3.connect(database)
with conn:
cur = conn.cursor()
cur.execute(sql, task)
conn.commit()
print(cur.lastrowid)
즐거운 시간되세요^^
'python & 라즈베리파이' 카테고리의 다른 글
[python]패키지(package)에서 from, import 사용법 (0) | 2020.11.01 |
---|---|
[Python]모듈(module)에서 from, import, as 사용법 (0) | 2020.11.01 |
[python]파일 또는 디렉토리의 존재 여부 확인(checking the existence of a file or directory) (0) | 2020.10.28 |
[python]sqlite3에 다수의 데이터를 한번에 입력(multiple insert in sqlite3) (0) | 2020.10.27 |
[python]No module named 'thunder_db.py'; 'thunder_db' is not a package (0) | 2020.10.27 |