더북(TheBook)

5.2.1 데이터 삽입: insert

다시 파이참으로 돌아가 balance 테이블에 값을 넣는 코드를 만들어 보겠습니다.

db_helper.py

import sqlite3
conn = sqlite3.connect('universe_price.db', isolation_level=None)
cur = conn.cursor()

# cur.execute('''CREATE TABLE balance
#                (code varchar(6) PRIMARY KEY,
#                bid_price int(20) NOT NULL,
#                quantity int(20) NOT NULL,
#                created_at varchar(14) NOT NULL,
#                will_clear_at varchar(14)
#            )''')

sql = "insert into balance(code, bid_price, quantity, created_at, will_clear_at) values(?, ?, ?, ?, ?)"
cur.execute(sql, ('005930', 70000, 10, '20201222', 'today'))
print(cur.rowcount)

테이블 생성에 사용했던 코드는 주석 처리했습니다. 이미 있는 테이블을 다시 생성하려고 하면 테이블이 존재한다는 에러가 발생하기 때문입니다. 여기서 수행하는 SQL을 주석 처리하지 않으려면 CREATE TABLECREATE TABLE IF NOT EXISTS로 고칩니다. 그러면 테이블이 없을 때만 CREATE가 수행되므로 테이블이 있을 때도 문제되지 않습니다. 따라서 SQL에 CREATE TABLE IF NOT EXISTS를 사용한 경우에는 주석 처리를 해제해도 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.