MySQL insert 쿼리문 작성할 때 주의할 점

2019. 8. 30. 16:19PL/Python

sql 쿼리 작성시 반드시 value는 튜플 형태로 넣어야 한다. 2개 이상일 때는 (val1, val2)로 자동으로 튜플 형태로 넣게 되는데 데이터 하나를 넣을 때는 단독으로 쓰이기 때문에 튜플로 인식되지 못하게 할 수 있다. 튜플로 인식되게 하기 위해서는 반드시 (val1, ) ,를 붙여 튜플 형태로 만들어야만 한다

 

예시)

var = 1
print(type(val)) # int
var = (1)
print(type(val)) # int
var = (1, )
print(type(val)) # tuple

 

파일을 읽어와 리스트로 만들어, 쿼리 테이블에 삽입하는 코드

 

import mysql.connector

f = open("C:\python-mysql\output.txt", "r", encoding='utf8')

c_list = []

while True:
    c_list = (f.readline()).split(',')
    break

f.close()

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="8993",
  database="world"
)

mycursor = mydb.cursor()
mycursor.execute("DROP TABLE my_country")
mycursor.execute("CREATE TABLE my_country (name VARCHAR(45))")

for x in c_list:
    sql = "INSERT INTO my_country (name) VALUES (%s)"
    val = (x, )
    mycursor.execute(sql, val)

mydb.commit()

'PL > Python' 카테고리의 다른 글

vs code에서 Jupyter notebooks 환경 구축  (0) 2019.08.30
atom Hydrogen 설치  (0) 2019.08.30
파이썬에서의 스택과 큐  (0) 2019.08.29
UnicodeDecodeError: 'cp949' 에러 해결  (0) 2019.08.29
__init__.py  (0) 2019.08.28