728x90
반응형
cursor.executemany(sql, data)로 다수의 로우 데이터를 INSERT 할 수 있다.
sql : INSERT 쿼리 문을 넣으면 된다.
sql = """INSERT INTO TBL_NAME (COL1_NAME, COL2_NAME, COL3_NAME) VALUES(%s,%s,%s)"""
data : sql 입력 파라미터들을 tuple로 만들고 list로 감싸주면 된다.
data = [(parm1,parm2,parm3),(parm1,parm2,parm3),(parm1,parm2,parm3)....]
[ERROR]
TypeError: not all arguments converted during string
sql문에서 ON DUPLICATE KEY UPDATE 사용시 주의
[잘못된 방식]
sql = """INSERT INTO TBL_NAME (COL1_NAME,COL2_NAME,COL3_NAME) VALUES(%s, %s,%s)
ON DUPLICATE KEY
UPDATE
COL1_NAME=%s,
COL2_NAME=%s,
COL3_NAME=%s
"""
[수정]
sql = """INSERT INTO TBL_NAME (
COL1_NAME,
COL2_NAME,
COL3_NAME
)
VALUES(
%s,
%s,
%s)
ON DUPLICATE KEY
UPDATE
COL1_NAME=VALUES(COL1_NAME),
COL2_NAME=VALUES(COL2_NAME),
COL3_NAME=VALUES(COL3_NAME)
"""
반응형
'Database' 카테고리의 다른 글
[SQL] Count 함수, Sequel vs SQL (0) | 2023.08.19 |
---|---|
Apache Parquet(파케이) (0) | 2023.08.14 |
[알쓸] Mysql database 정렬 (0) | 2023.07.31 |
[Mysql] Python Sql query Format Error (0) | 2022.03.21 |
[Mysql] Pymysql INSERT 쿼리 생성기 (0) | 2022.03.21 |