pymysql, mysql insert if not exists error 유니크한인덱스로 auto_increment인 id ...
조회수 554회
- 안녕하세요. 데이터값들을 db에 중복없이 비교 후 insert 하려고 not exists 를 사용하려고 합니다.
- 저의 테이블에서는 4개의 컬럼을 묶어야만 유니크한 조합을 할 수 있고,
- 4개의 컬럼은 (overview_symbol, overview_date, overview_quarter) 입니다.
- 혹은 auto_increment인 id 컬럼이 유니크합니다.
그래서 가상의 테이블에서 데이터를 비교해서 없으면 insert를 하려하는데 제목과 같이 에러를 일으켰습니다. 어떠한 방법이 있는지 알 수 있을까여?
try:
sql = """
insert into overview(`overview_symbol`, `overview_date`, `overview_quarter`, `overview_year`, `rps`, `bookVal`, `profitMargin`, `revenueQoQ`, `grossMargin`, `currentRatio`, `piotroskiFScore`, `longTermDebtEquity`, `epsQoQ`, `bvps`, `roa`, `roe`)
select (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
from dual
where not exists (select `overview_id` from where ???어떻게해야하지...)"""
curs3.execute(sql, overview_tuple)
conn3.commit()
print("overview",curs3.rowcount)
except Exception as e:
pprint(overview_tuple)
pprint(e)
print(ProgrammingError)
pass
finally:
conn3.close()
댓글 입력