pymysql에서 insert 방법으로
INSERT INTO {table명} COLUMNS {칼럼명} VALUES (%s, %s ..)
방식만 사용했었다.
위의 방법을 사용했을 때,
복수 실행문 executemany에서는 error가 없었으나
단일 실행문 execute에서는 error가 발생했다.
- list형
- dict형
예제 데이터 (df)
A | B |
---|---|
1 | a |
3 | b |
5 | c |
INSERT INTO 테이블명 (칼럼명) VALUES (%s, %s ...)
query = "INSERT INTO TB_NM (`A`, `B`) VALUES('%s', '%s')
# executemany
db.cursor.executemany(query, df.values.tolist())
db.connect.commit()
# execute
for i in range(df.shape[0]):
db.cursor.execute(query, df.iloc[i, :].values.tolist())
db.connect.commit()
INSERT INTO 테이블명 (칼럼명) VALUES (%(col1)s, %(col2)s, ...)
query = "INSERT INTO TB_NM (`A`, `B`) VALUES('%(A)s', '%(B)s')
# executemany
db.cursor.executemany(query, df.values.tolist())
db.connect.commit()
# execute
for i in range(df.shape[0]):
db.cursor.execute(query, df.iloc[i, :].values.tolist())
db.connect.commit()