pymysql, mysql insert if not exists error 유니크한인덱스로 auto_increment인 id ...

조회수 554회
  1. 안녕하세요. 데이터값들을 db에 중복없이 비교 후 insert 하려고 not exists 를 사용하려고 합니다.
  2. 저의 테이블에서는 4개의 컬럼을 묶어야만 유니크한 조합을 할 수 있고,
  3. 4개의 컬럼은 (overview_symbol, overview_date, overview_quarter) 입니다.
  4. 혹은 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()


답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)